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

Оптимальное количество и расположение магнитных датчиков на печатной плате

7 minutes ago, iiv said:

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

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

свойства не теряют, тем более что их если пилят/фрезеруют в размер, то до намагничевания.

а намагниченные магниты мы резали водой, хотели ещё вроде edm попробовать, но насколько помню побоялись станок засрать.

 

18 minutes ago, iiv said:

 Я же про алиэксперсс говорил, я просто как-то там купил кучку кубиков, чтобы магнитный енкодер сделать на ADA4571

так AMRу же особо без разницы поле, он только направление показывает, а не амплитуду. лишь бы больше пары десятков мТ было и ладно.

а с алиэкспресса и просто из железа кубики могли прислать :)

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


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

8 minutes ago, _pv said:

а с алиэкспресса и просто из железа кубики могли прислать :)

так я собственно и остерегаю ТС от того, что не факт, что он будет использовать магниты от надежного и проверенного источника, и поле от магнита может быть очень отличающимся от того, что он мог бы ожидать.

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


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

Закончил мотать катушку для калибровки датчиков. почти 2 недели с перерывами на лечение короны.
Провод диаметром 0,315 мм с лаком 0,33мм

диаметр трубы 32,32мм
длина намотки 320 мм
926642547_bigkatushkaWhatsAppImage2021-10-12at21_03_44.thumb.jpeg.fb236617fb8d3c11bd3cc6ce686de336.jpeg

Магниты оказались обычными но точными, по крайней мере по размерам. 

Спасибо за ссылочку на немецкие магниты, впервые увидел, что можно магниты изготавливать так точно.

 

image.thumb.png.645aea8f3ff62f762ec6b3bab4b93a68.png

 

Поле не более +- 16 Гаус.
Датчики на оригинальной плате стоят LIS3MDL 

lis3mdl.pdf

plata original WhatsApp Image 2021-10-12 at 21.17.36.jpeg

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


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

Всем добрый вечер!

В продолжение темы. Дошел до математики. И често сказать, я все забыл или почти всё. :(

Прошу разъяснить моменты по двум работам, приложу в конце. Идея таже - определение положения магнита, относительно массива датчиков магнитометров 3d. 

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

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

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

Заранее прошу не пинать сильно.   

 

 

 

A_New_Calibration_Method_for_Magnetic_Sensor_Array.pdf array massive sensors-small001.pdf

Изменено пользователем AlanSbor

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


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

я честно говоря из статьи не смог понять каким именно методом они это оптимизировали, и почему у них такая непредсказуемая сходимость. Как я говорил, пишите наименьшие квадраты (в статье есть как), пишите первые и вторые производные, пишите Ньютона с релаксацией, и тогда все должно работать. Теоретически неизвестных у вас 5, но я бы взял 6 (три координаты местоположения магнита и 3 координаты направленности магнитного поля - почти уверен, что с 6-ю неизвестными сходиться будет лучше), то посчитать частные первые и вторые производные не должно составить большого труда, хотя я бы это делал бы с помощью мэпла или математики, чтобы не ошибиться случайно. Ньютон с релаксацией есть в википедии, там нет ничего страшного, систему уравнений 6х6 для Ньютона решать можно и Гауссом в несколько строчек кода. Хотя не спорю, что если Вы это раньше ни разу не делали, то сделать конечно можно, но придется долго и упорно стараться.

 

Если на этом пути будут возникать конкретные непонимания или проблемы - спрашивайте, поможем, подскажем. Ньютон с релаксацией наверное можно откуда-то скачать, а вот производные считать всяко самому придется. Более простого пути не вижу, квазиньютон будет существенно сложнее, другие методы минимизации будут сильно неустойчивы/численно трудоемки/не тривиально программируемы, а аналитического решения у такой задачи быть не должно.

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


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

14 hours ago, iiv said:

я честно говоря из статьи не смог понять каким именно методом они это оптимизировали

во второй статье:

Quote

 

To solve the equation of the position and direction of the PM through the magnetic flux density value obtained from HES, [39] compared various nonlinear minimization algorithms about the magnetic flux density and proved that the Levenberg–Marquardt (LM) algorithm is ideal for accuracy and processing speed

 

 

ТС это ещё и быстро потом считать захочет.

и они-то в статье магнит могут считать точечным диполем он у них далеко по сравнению с размерами, а вот здесь в случае колечка размером 10мм на расстояниях в те же десятки мм уже, наверное, не очень, то есть ещё и поле от магнита надо более аккуратно считать, и чтобы не интегрировать численно можно в какую-нибудь магнитостатическую считалку засунуть, и разницу между диполем и посчитанным полем в области около магнита каким-нибудь полиномом небольшой степени аппроксимировать.

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


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

On 6/17/2022 at 2:44 PM, _pv said:

во второй статье:

ой, спасибо за уточнение, я не сразу понял, что там две статьи

On 6/17/2022 at 2:44 PM, _pv said:

Levenberg–Marquardt (LM)

ага, оно теперь понятно, почему такая сходимость, с другой стороны, без знания методов, LM конечно проще запрограммировать.

On 6/17/2022 at 2:44 PM, _pv said:

можно в какую-нибудь магнитостатическую считалку засунуть

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

 

То есть если там все-таки кольцо, то ИМХО, разбивать его на 20-30 сегментов в каждом представляя одиночным диполем, и численно дальше все. А вот когда придет понимание, то, уже пытаться чем-то аппроксимировать.

 

Вангую, что если сенсоры на сетке, и если банально поснимать на декартовой сетке местоположение магнита со всеми различными направлениями, то полученный 5-ти мерный массив будет очень хорошо аппроксимироваться малоранговым пятимерным тензором. Тогда этот тензор можно будет в виде таблицы воткнуть в МК аппаратуры и по нему реконструировать местоположение, но вот осилит ли ТС такой метод или нет, тут большой вопрос, боюсь, что Ньютон будет проще,... именно проще, но, к сожалению, не быстрее.

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


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

1 hour ago, iiv said:

То есть если там все-таки кольцо, то ИМХО, разбивать его на 20-30 сегментов в каждом представляя одиночным диполем, и численно дальше все. А вот когда придет понимание, то, уже пытаться чем-то аппроксимировать.

тогда уж проще "аналитически" (с эллиптическими интегралами) честно считать поле цилиндрического магнита.

1 hour ago, iiv said:

если банально поснимать на декартовой сетке местоположение магнита со всеми различными направлениями

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

зато без математики и какой-либо аппроксимации вообще, 

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

терабайт флэш памяти под такую многомерную look-up таблицу нынче не сильно дорого стоит, вполне сравнимо с ценой сотни магнитных датчиков :)

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


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

В 17.06.2022 в 00:53, iiv сказал:

я честно говоря из статьи не смог понять каким именно методом они это оптимизировали, и почему у них такая непредсказуемая сходимость. Как я говорил, пишите наименьшие квадраты (в статье есть как), пишите первые и вторые производные, пишите Ньютона с релаксацией, и тогда все должно работать. Теоретически неизвестных у вас 5, но я бы взял 6 (три координаты местоположения магнита и 3 координаты направленности магнитного поля - почти уверен, что с 6-ю неизвестными сходиться будет лучше), то посчитать частные первые и вторые производные не должно составить большого труда, хотя я бы это делал бы с помощью мэпла или математики, чтобы не ошибиться случайно. Ньютон с релаксацией есть в википедии, там нет ничего страшного, систему уравнений 6х6 для Ньютона решать можно и Гауссом в несколько строчек кода. Хотя не спорю, что если Вы это раньше ни разу не делали, то сделать конечно можно, но придется долго и упорно стараться.

 

Если на этом пути будут возникать конкретные непонимания или проблемы - спрашивайте, поможем, подскажем. Ньютон с релаксацией наверное можно откуда-то скачать, а вот производные считать всяко самому придется. Более простого пути не вижу, квазиньютон будет существенно сложнее, другие методы минимизации будут сильно неустойчивы/численно трудоемки/не тривиально программируемы, а аналитического решения у такой задачи быть не должно.

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

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


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

В 17.06.2022 в 16:45, iiv сказал:

ой, спасибо за уточнение, я не сразу понял, что там две статьи

ага, оно теперь понятно, почему такая сходимость, с другой стороны, без знания методов, LM конечно проще запрограммировать.

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

 

То есть если там все-таки кольцо, то ИМХО, разбивать его на 20-30 сегментов в каждом представляя одиночным диполем, и численно дальше все. А вот когда придет понимание, то, уже пытаться чем-то аппроксимировать.

 

Вангую, что если сенсоры на сетке, и если банально поснимать на декартовой сетке местоположение магнита со всеми различными направлениями, то полученный 5-ти мерный массив будет очень хорошо аппроксимироваться малоранговым пятимерным тензором. Тогда этот тензор можно будет в виде таблицы воткнуть в МК аппаратуры и по нему реконструировать местоположение, но вот осилит ли ТС такой метод или нет, тут большой вопрос, боюсь, что Ньютон будет проще,... именно проще, но, к сожалению, не быстрее.

Вы правы сенсоры на сетке 5 на 6 - расстояние определял экспериментально на тестовом образце где один датчик. Расстояние от магнита хватает чтобы обеспечить показания через 30 мм пачку бумаги и показания не были представлены шумами, запас до 67мм, после 70-75 мм уже данные практически не различимы. Сетка между датчиками точная и для полной печатной платы приложил полную сетку в pdf файле.

Платы уже изготовлены и едут.  По контроллеру выбираю еще. Скорее всего будет ESP32 на FreeRTOS, если его производительности не хватит есть RSL-10 на FreeRTOS от On Semicondactor, ну если и его не хватит, то есть Teensy 4.1 с FreeRTOS на NXP 1062 и есть еще MIMXRT595 на FreeRTOS тоже от NXP.

От простого контроллера с WiFi и BLE на борту, до самого сильного, но к которому можно спокойно подцепить и BLE и WiFi.  Почему так, ответ один - стоимость и импорт.

image.thumb.png.e8dad9a2b73ca8ec2a5d5d94ef20d73f.png

 

Вопрос: как обсчитать позицию постоянного магнита через метод Ньютона?


Я посмотрел пример для  простого уравнения Вот этот


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

Не понял про a и b. Кто их определяет или по каким критериям их определяют что бы получить сходимость ?

про точность по итерациям тоже все понятно как ее определять, но не понятно какая точность должна быть у моей системы и почему ?

Сколько мне нужно сделать итераций чтобы гарантированно достичь нужной точности и как это отразится на производительности контроллера ?

В работах которые выложил ранее у них более 100 итераций и им как я понял этого мало.

 

Composite Drawing.pdf

В 17.06.2022 в 18:15, _pv сказал:

тогда уж проще "аналитически" (с эллиптическими интегралами) честно считать поле цилиндрического магнита.

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

зато без математики и какой-либо аппроксимации вообще, 

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

терабайт флэш памяти под такую многомерную look-up таблицу нынче не сильно дорого стоит, вполне сравнимо с ценой сотни магнитных датчиков :)

Терабайт это конечно хорошо. Но может метод без него есть ? 

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


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

On 6/17/2022 at 5:15 PM, _pv said:

тогда уж проще "аналитически" (с эллиптическими интегралами) честно считать поле цилиндрического магнита.

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

On 6/17/2022 at 5:15 PM, _pv said:

терабайт флэш памяти под такую многомерную look-up таблицу нынче не сильно дорого стоит, вполне сравнимо с ценой сотни магнитных датчиков :)

я про таблицу насчет ее 5-ти мерности слегка недосчитал, у нас отклик-то не скалярный, там еще две размерности, то есть массив будет 7-ми мерным! Грубо говоря, пусть по Х, Y будет по 200 точек, по Z - 100 точек, углы опишем (с учетом симметрии) на сетке 50х50, и сенсоров будет еще 20х20, тогда 12 терабайт надо, но да черт с ним, с этими 12 терабайтами, ведь тут надо по ним поиск сделать, причем по всему этому массиву, при скорости чтения флеша в 50М/с это реально часы работы для получения одного значения. Я же предлагал именно тензорную аппроксимацию, и, вангую, что ранг оной будет меньше тысячи (а скорей всего и ста не будет), то есть надо будет хранить всего-то (200+200+100+50+50+20+20)*1000*3*4 = 7МБайт примерно, а если с рангом повезет, то 700КБайт всего-то и поиск будет примерно с такой же вычислительной сложностью, типа под мегафлоп на измерение, нормальный кортекс за сотню миллисекунд будет все вычислять.

On 6/17/2022 at 6:18 PM, AlanSbor said:

Я посмотрел пример для  простого уравнения Вот этот

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

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


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

3 hours ago, iiv said:

боюсь, что не реально

да вроде как конечный аксиально намагниченный цилиндр ровно как и конечный соленоид, хоть и с эллиптическими интегралами, но решение имеют.

тут вот даже с произвольной намагниченностью: https://sci.bban.top/pdf/10.1016/j.jmmm.2018.02.003.pdf

и аж 1960 года статья https://ntrs.nasa.gov/api/citations/19980227402/downloads/19980227402.pdf

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


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

On 6/17/2022 at 10:39 PM, _pv said:

да вроде как конечный аксиально намагниченный цилиндр ровно как и конечный соленоид, хоть и с эллиптическими интегралами, но решение имеют.

а, да, Вы правы, аксиально намагниченный, запамятовал. Я, в свое время искал решение в более общем виде, когда вектор намагниченности не аксиальный, а направлен по всему объему материала под углом к оси.

 

Кстати, если предположить, что ТС нужно решение, когда его цилиндрик высотой с 5-7мм находится гарантированно на 20мм+ от поверхности, то тут проще одним диполем все аппроксимировать.

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


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

В 17.06.2022 в 20:01, iiv сказал:

Всем доброго вечера!

Сделал пару заметок. 

Скажите пожалуйста куда дальше копать ? 

 

image.thumb.png.7888532369a20dc07e78d5f77c30e076.png

 

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

Или я не правильно понимаю метод суммы наименьших квадратов ? 

 

 

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


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

есть измеренные значения датчиков {Bx_i,By_i,Bz_i}, которые находятся в точках с координатами {X_i, Y_i, Z_i}

пусть магнит находится неизвестной пока в точке {X0, Y0, Z0} и повернут на углы A и B.

надо взять и посчитать поле которое этот магнит находясь в этом положении должен создать в точках где находятся датчики,  для начала можно взять поле точечного магнитного момента 3*r*(m.r)/r^5-m/r^3.

и разница с измеренными датчиками значениями (возведённая в квадрат) покажет насколько хорошо угадали X0 Y0 Z0 A B.

теперь можно взять и немного поменять наше предположение о положении магнита X0 + dX, и опять посчитать поле и его разность с измеренными значениями, если значение квадрата разности стало меньше -> верной дорогой идёте товарищи, если же разность стала больше, значит идём не туда и знак у dX надо бы поменять и идти в другую сторону. так же и со всеми остальными четыремя параметрами.

в линейном случае это просто решается  дифференцированием разности по парамерам X0, Y0, Z0, A, B и аналитическим нахождением точки где производные равны нулю.

в нелинейном же есть разные методы выбора dX, dY...  по ходу движения, чтобы побыстрее прийти в минимум и желательно не заблудившись при этом в каком-нибудь локальном минимуме.

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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