О сайте Группа в контакте RSS Годограф Volksturm Импульсные металлоискатели IB металлоискатели Пинпоинтеры Другие схемы Заказать Конструкции металлоискателей Полезные ссылки

Схемы металлоискателей MD4U

Сборка, настройка, обсуждение, теория и практика построения металлоискателей.
Текущее время: Чт: 28 мар 2024 21:06

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему
 [ Сообщений: 36 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Немного о том, как это делается...
СообщениеДобавлено: Вт: 09 сен 2008 11:58 
Не в сети
Аватара пользователя

Зарегистрирован: Пт: 17 фев 2006 17:16
Сообщения: 575
Откуда: С-Петербург
Для тех, кто сам хочет делаеть МД с ЦОС, коротенько, как это делается у меня :wink:
Входной сигнал с датчика представляет из себя смесь из остаточного сигнала А0(разбаланс датчика), сигнала помехи, сигнала грунта Аg и собственно сигнала мишени Аm. Ввиду невысоких возможностей МК и наличия некоторых опытных данных, сигналом помехи вынужденно пренебрегаем. Возможно, кто-то скажет, что это опрометчиво, но увы… В результате, полученное можно представить в следующем виде:
А0*Sinα+Ag*Sinβ+Am*Sinδ=Y0
А0*Cosα+Ag*Cosβ+Am*Cosδ=X0
X0=X-Xf
Y0=Y-Yf
Где X иY текущие значения на выходе АЦП (здесь и далее имеются ввиду значения после первичного ЦФ). Xf и Yf значения на выходе второго фильтра. Т.е. с учётом его тау усреднённые значения X и Y равны 0. Ввиду того, что А0 имеет очень низкую скорость изменения, считаем, что они равны
Yf= А0*Sinα
Xf= А0*Cosα
Тогда:
X= Ag*Cosβ+Am*Cosδ или Ag*Cosβ = X - Am*Cosδ
Y= Ag*Sinβ+Am*Sinδ или Ag*Sinβ = Y - Am*Sinδ
Учитывая, что после баланса грунта мы имеем коэффициент:
К=( Ag*Sinβ)/( Ag*Cosβ)=tgβ
и
К*Х - К*Аm* Cosδ=Y - Am*Sinδ
K*X – Y=Am(K* Cosδ - Sinδ)=m
В отсутствии мишени Am=0, т.е. мы имеем только составляющую грунта, и
K*X-Y=m=0
Как только составляющая мишени m превысит значение выставленного порога Р, считаем, что мишень обнаружена.
При этом после каждого такого вычисления, если m<Р, мы сохраняем значения X и Y в буферных ячейках XB и YB.
Как только выполняется условие m>P, опорными величинами для вычисления истинных значений X и Y мишени.
Xm=Аm* Cosδ=X-XB
Ym=Am*Sinδ=Y-YB
Правда, нам приходится сделать одно немаловажное допущение, что параметры грунта в пределах мишени ПОСТОЯННЫ. Увы, идеальных систем не существует…
С уважением.
Александр.


Вернуться к началу
 Профиль  
 


Вы можете отключить эти сообщения.
 Заголовок сообщения:
СообщениеДобавлено: Вт: 09 сен 2008 14:16 
Не в сети
Аватара пользователя

Зарегистрирован: Пт: 23 фев 2007 19:11
Сообщения: 620
Откуда: Украина, Сумы, Киев
Спасибо! очень интересно и познавательно! :)

_________________
Tracker PI2/ ClonePI-W/ Chance/Tesoro Eldorado/КРОТ М


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт: 09 сен 2008 17:48 
Не в сети
Аватара пользователя

Зарегистрирован: Ср: 27 фев 2008 20:29
Сообщения: 166
Откуда: Томск
Вы говорите "ввиду невысоких возможностей мк"-интересно а что именно не удается реализовать на данном мк,или вообще на 8-ми разрядном? Какие параметры возможно было бы улучшить например применив 16-ти разрядные типа dspic30 или msp430?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср: 10 сен 2008 11:24 
Не в сети
Аватара пользователя

Зарегистрирован: Пт: 17 фев 2006 17:16
Сообщения: 575
Откуда: С-Петербург
Практически, все вычисления двухбайтные (или более), что сильно замедляет процесс. Далее, используя DSP, можно улучшить фильтрацию, здесь она на грани. И т.д. и т.п.
Сейчас делаю "самообучение", чтобы можно было выкинуть все цепи для настройки фазы. А это сплошная тригонометрия, за то позволит исключить любые "перевороты" фазы.
С уважением.
Александр.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср: 10 сен 2008 11:57 
Не в сети
Аватара пользователя

Зарегистрирован: Ср: 27 фев 2008 20:29
Сообщения: 166
Откуда: Томск
Щас рассуждаю вслух- ведь перекинуть на dspic30 с pic18 не так сложно. Нужно изменять только регистры и порты,правильно? И исходник по моему вы выкладывали..


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср: 17 сен 2008 15:55 
Не в сети
Аватара пользователя

Зарегистрирован: Пт: 17 фев 2006 17:16
Сообщения: 575
Откуда: С-Петербург
Схема этого нового аппарата будет приблизительно такой:
Изображение
http://alteh.narod.ru/Gif/DMD_auto.GIF
ПО в разработке. Есть несколько проблем, но вроде решаются :wink:
Посмотрим, что получится.
С уважением.
Александр.


Последний раз редактировалось Alteh Ср: 01 окт 2008 9:22, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн: 29 сен 2008 16:42 
Не в сети
Аватара пользователя

Зарегистрирован: Пт: 17 фев 2006 17:16
Сообщения: 575
Откуда: С-Петербург
Продолжение :wink:
Теперь, попробуем определиться с вариантом произвольной начальной фазы. Поясню, имеется ввиду, что мы не знаем какой фазовый сдвиг даёт наша аппаратная часть. Но, если при настройке к датчику МД поднести феррит, то полученный сигнал можно использовать как эталон (естественно, при отсутствии рядом постороннего металла). Тогда:
А0*Sinα+Af*Sinφ=Yf
А0*Cosα+Af*Cosφ=Xf
Учитывая сказанное в самом начале, имеем:
Af*Sinφ=Yf
Af*Cosφ=Xf
или
tgφ=Yf/Xf=F
Теперь вычисляем arctg и узнаём истинное значение φ.
Запомним это число.
Теперь надо вычислить реальное соотношение X и Y для мишени. Для грунта это будет выглядеть так:
Ag*Sin(β+φ)=Yg
Ag*Cos(β+φ)=Xg
Но вычислять истинную фазу грунта нет никакой необходимости. Вполне достаточно знать, соотношение K=Yg/Xg. Далее используем это число так, как сказано выше. Вместо нужного нам соотношения
m=Ym/Xm=Sin δ/Cos δ
мы имеем некое
D=Am*Sin(φ +δ)/Аm* Cos(φ +δ),
Вычисляем значение arctg. Теперь, зная (φ +δ) и φ, вычислить δ большого труда не составит ;) Значения от 0 до 90˚ соответствуют чёрным металлам, от 90˚ до 180˚ - цветным.
Далее выполняются следующие действия:
вычисляем (Ag*Sin(β+φ))^2+(Ag*Cos(β+φ))^2=Ag^2
и берём от полученного числа логарифм по основанию 2.
Вычисляем Sin δ и Cos δ.
Y= (Sin δ)*log(Ag^2)
X= (Cos δ)*log(Ag^2)
Эти величины откладываются на годографе.
Все тригонометрические функции вычисляются табличным способом, что позволяет максимально увеличить скорость операции и занимает совсем немного места в памяти программ.
С уважением.
Александр.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн: 29 сен 2008 22:24 
Не в сети
Аватара пользователя

Зарегистрирован: Вс: 06 ноя 2005 11:17
Сообщения: 4527
Откуда: С.-Петербург
На Си будешь писать ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт: 30 сен 2008 4:43 
Не в сети
Аватара пользователя

Зарегистрирован: Вт: 22 ноя 2005 11:49
Сообщения: 108
хотелось бы отметить, что лучше отказаться от запоминания X и Y в момент появления цели. Хоть скорость изменения амплитуды грунта не велика, но соизмерима с амплитудой сигнала от цели.
Я по крайней мере попробовал и отбросил этот вариант.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт: 30 сен 2008 10:11 
Не в сети
Аватара пользователя

Зарегистрирован: Пт: 17 фев 2006 17:16
Сообщения: 575
Откуда: С-Петербург
Andy_F писал(а):
На Си будешь писать ?

Уже практически написал на асме :wink: На С пока не рискую проекты такого объма делать. Но тихонько осваиваю :D


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт: 30 сен 2008 10:16 
Не в сети
Аватара пользователя

Зарегистрирован: Пт: 17 фев 2006 17:16
Сообщения: 575
Откуда: С-Петербург
kos писал(а):
хотелось бы отметить, что лучше отказаться от запоминания X и Y в момент появления цели. Хоть скорость изменения амплитуды грунта не велика, но соизмерима с амплитудой сигнала от цели.
Я по крайней мере попробовал и отбросил этот вариант.

Честно говоря, не понял о каком моменте идёт речь :(


Вернуться к началу
 Профиль  
 
В сети

Вы можете отключить эти сообщения.
 Заголовок сообщения:
СообщениеДобавлено: Вт: 30 сен 2008 10:21 
Не в сети
Аватара пользователя

Зарегистрирован: Вт: 22 ноя 2005 11:49
Сообщения: 108
Цитата:
Как только составляющая мишени m превысит значение выставленного порога Р, считаем, что мишень обнаружена.
При этом после каждого такого вычисления, если m<Р, мы сохраняем значения X и Y в буферных ячейках XB и YB.
Как только выполняется условие m>P, опорными величинами для вычисления истинных значений X и Y мишени.

вот тута


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт: 30 сен 2008 10:36 
Не в сети
Аватара пользователя

Зарегистрирован: Вс: 06 ноя 2005 11:17
Сообщения: 4527
Откуда: С.-Петербург
Alteh писал(а):
Andy_F писал(а):
На Си будешь писать ?

Уже практически написал на асме :wink: На С пока не рискую проекты такого объма делать. Но тихонько осваиваю :D

Жаль... Хотел подкинуть пару фрагментов.

Кстати, log(A) / log(B) != log(A / B) . Логарифмировать показания годографа - абсолютно правильно, но логарифмировать координаты по отдельности нельзя. Надо перейти от прямоугольных координат к полярным (вычислить длину вектора и угол его наклона), затем длину прологарифмировать, и перейти "обратно" - в прямоугольные координаты экрана.

P.S. Виноват, пригляделся - всё так и сделано. :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт: 30 сен 2008 12:22 
Не в сети
Аватара пользователя

Зарегистрирован: Пт: 17 фев 2006 17:16
Сообщения: 575
Откуда: С-Петербург
kos писал(а):
Цитата:
Как только составляющая мишени m превысит значение выставленного порога Р, считаем, что мишень обнаружена.
При этом после каждого такого вычисления, если m<Р, мы сохраняем значения X и Y в буферных ячейках XB и YB.
Как только выполняется условие m>P, опорными величинами для вычисления истинных значений X и Y мишени.

вот тута

Ну, если ты можешь предложить другой вариант решения, буду только рад :wink: А, кстати, чем тебе этот вариант не нравится?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт: 30 сен 2008 15:53 
Не в сети
Аватара пользователя

Зарегистрирован: Вт: 22 ноя 2005 11:49
Сообщения: 108
обратимся к любой аналоговой схеме. фильтр после СД работает всегда, никакое запоминание не делается.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт: 30 сен 2008 17:33 
Не в сети
Аватара пользователя

Зарегистрирован: Пт: 17 фев 2006 17:16
Сообщения: 575
Откуда: С-Петербург
Пардон! А при чем тут ФНЧ после СД?! Если ты посмотришь первое сообщение, то прочтёшь следующее:
"X0=X-Xf
Y0=Y-Yf
Где X иY текущие значения на выходе АЦП (здесь и далее имеются ввиду значения после первичного ЦФ). Xf и Yf значения на выходе второго фильтра."
Т.е. этот процесс непрерывен.
Kos, ты уж прочти повнимательнее весь алгоритм :wink:
P.S. Я, кстати, тоже пробывал, и вроде как всё получилось...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт: 30 сен 2008 17:39 
Не в сети
Аватара пользователя

Зарегистрирован: Вт: 15 ноя 2005 14:26
Сообщения: 8764
Откуда: Кыев- Азагарий
А что раскачка меандром? Не мешает? Как с этими проблемами? Мне чтото разонравилось.

_________________
"Сколько можно заниматься полупроводниками?! Пора заняться проводниками в целом..."


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср: 01 окт 2008 9:17 
Не в сети
Аватара пользователя

Зарегистрирован: Пт: 17 фев 2006 17:16
Сообщения: 575
Откуда: С-Петербург
Меандр? Мешает конечно :( Но я и не скрываю, что на первом месте этой конструкции (изначально) стояла простота схемы. Формировать Sin програмно не позволяют возможности МК. Возможно, перейду на треугольные.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср: 01 окт 2008 11:21 
Не в сети
Аватара пользователя

Зарегистрирован: Вт: 22 ноя 2005 11:49
Сообщения: 108
вчитался еще раз. в предыдущем письме был всетаки прав.
запоминаются XB и YB - значения АЦП.
за время прохождения над целью грунт меняется, это искажает ВДИ.

почему бы не брать Х0 и Y0 для расчета ВДИ ?


Последний раз редактировалось kos Ср: 01 окт 2008 12:04, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср: 01 окт 2008 11:44 
Не в сети
Аватара пользователя

Зарегистрирован: Вт: 15 ноя 2005 14:26
Сообщения: 8764
Откуда: Кыев- Азагарий
Alteh писал(а):
Меандр? Формировать Sin програмно не Возможно, перейду на треугольные.


Так вовсе не нужен синус. В идеале нужен именно треугольник. Как линейная функция. Но! Треугольника не получить, всеравно будет синус. При таком питании советую обратить внимание на вых. каскад Троя. Вполне прилично при 6В питания. Могу добавить, что "лишний спектр" который образуется в результате ТХ меандром вызивает различные отклики не хорошие, на артефакты ( руки и т.п.) Создается впечатление плохого экрана, кабеля. Нужна тщательная фильтрация как ТХ так и RX сигналов.

_________________
"Сколько можно заниматься полупроводниками?! Пора заняться проводниками в целом..."


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср: 01 окт 2008 13:18 
Не в сети
Аватара пользователя

Зарегистрирован: Пт: 17 фев 2006 17:16
Сообщения: 575
Откуда: С-Петербург
Ciklon писал(а):
Но! Треугольника не получить, всеравно будет синус.

Это если резонанс делать. Я имел ввиду идею заложенную в Кощея.
Цитата:
При таком питании советую обратить внимание на вых. каскад Троя. Вполне прилично при 6В питания.

А что это за каскад?
Цитата:
Могу добавить, что "лишний спектр" который образуется в результате ТХ меандром вызивает различные отклики не хорошие, на артефакты ( руки и т.п.) Создается впечатление плохого экрана, кабеля. Нужна тщательная фильтрация как ТХ так и RX сигналов.

А вот этого не замечал :?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср: 01 окт 2008 14:26 
Не в сети
Аватара пользователя

Зарегистрирован: Пт: 17 фев 2006 17:16
Сообщения: 575
Откуда: С-Петербург
kos писал(а):
вчитался еще раз. в предыдущем письме был всетаки прав.
запоминаются XB и YB - значения АЦП.
за время прохождения над целью грунт меняется, это искажает ВДИ.

почему бы не брать Х0 и Y0 для расчета ВДИ ?

И VDI чего мы в этом случае получим?! :shock: Ведь это координаты суммарного вектора, от грунта и мишени.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт: 02 окт 2008 15:21 
Не в сети
Аватара пользователя

Зарегистрирован: Вт: 22 ноя 2005 11:49
Сообщения: 108
хм. грунт как раз фильтром отсекается( не полностью конечно, но это единственный способ в данном случае).

А так (с запоминанием XB и YB) все изменения грунта откладываются на годографе и сказываются на полученном ВДИ. особенно когда сигнал от цели продолжительный.


Последний раз редактировалось kos Чт: 02 окт 2008 15:28, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт: 02 окт 2008 15:27 
Не в сети
Аватара пользователя

Зарегистрирован: Пт: 17 фев 2006 17:16
Сообщения: 575
Откуда: С-Петербург
Э, нет! Фильтром он никак не может отсекается. Именно потому, что находится в той же временной области, что и мишень. На эти грабли я уже наступал :D Да за время прохождения датчика над мишенью грунт может измениться, но чем-то приходится жертвовать. Увы...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт: 02 окт 2008 21:22 
Не в сети
Аватара пользователя

Зарегистрирован: Чт: 03 ноя 2005 21:10
Сообщения: 717
Откуда: Гомель
Alteh-у!
Высказать свое мнение лучше, где люди понимают суть вопроса.
Вычисление отдельно координат X, Y, как (А0*Sinα+Ag*Sinβ+Am*Sinδ=Y0
А0*Cosα+Ag*Cosβ+Am*Cosδ=X0) – не совсем правомерно.
Угол между каналами равен = 90 гр. (берем его за основу). Если φ=0 (феррит), то мы имеем прямоугольную систему координат. Все рассматриваем на уровне СД-ов (без фильтров треша и.т д). Сигнал на входе обоих каналов один и тот же, только в СД-ах берется из них определенный «кусок» - синус и косинус (тактированием). Смещение от φ=0 от небаланса датчика, смещает φ на определенный угол, который сместит (не вектор) прямоугольную систему координат на определенный угол. Теперь нужно возвратить прямоугольную систему координат на место (φ=0).
В процессорном приборе это можно сделать смещением тактирования обоих каналов одновременно (угол X и Y =90 постоянно). Проконтролировать можно наличием 0 на выходе СД в канале X (Сos). Это первоначальный этап и вносить его в дальнейшее вычисления нет смысла.

Теперь (датчик на грунте) земля, сместит фазу на определенный угол, вычисляем вектор и угол земли и запоминаем его. Возвращаем (способом, описываемым выше) к прямоугольную систему координат на место. При этом на выходе СД канала Х будет 0, а амплитуда канала Y будет отражать «уровень земли». Этот «уровень» можно привести к 0, если ввести управляемую компенсацию на входе МД (как у Костина в его Микадо).

«Ловим цель» и измеряем ее угол, отнимаем или прибавляем угол земли, и получаем итоговый угол цели. «Цель» можно измерять при наличии отклика на выходе фильтров.

Эти измерения можно назвать «стерильными», если учитывать, что фильтры сведут медленные изменения земли (1-8Гц) к минимуму и выделят сигнал «цели».

Конечно, всех интересует реальный поиск и в реальных условиях (поиск возле металлических заборов, труб и различных конструкций, и различного сочетания предметов в земле).
Например: мы имеем датчик у которого TX добротность высока, а RX добротность низка). Индуктивное влияние крупных и средних металлических конструкций в первую очередь отразится на изменении индуктивности (паразитной) катушки TX. Так как амплитуда резонанса связана c Q, то излучаемая амплитуда (при наличии данных предметов) резко упадет, не говоря о нарушении баланса датчика и других последствий. Поэтому необходима подстройка под резонанс, при этом корректировать то, что описывалось раннее.

Возможно, это - мое понимание и оно не верно.

_________________
С уважением, Михаил.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 36 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти: