_pv 21 October 3, 2021 Posted October 3, 2021 · Report post 7 minutes ago, iiv said: Возможно только лазером и можно резать, но не факт, что при этом приграничный слой на глубину до милиметра не теряет свои свойства. насколько понимаю в нужную форму прессуют когда деваться особо некуда, какие-нибудь полукруглые магниты хитрой формы, или тонкие колечки с большим радиусом которые вырезать не очень осмысленно, а более менее кубические магниты дешевле нарезать из большого кирпича. свойства не теряют, тем более что их если пилят/фрезеруют в размер, то до намагничевания. а намагниченные магниты мы резали водой, хотели ещё вроде edm попробовать, но насколько помню побоялись станок засрать. 18 minutes ago, iiv said: Я же про алиэксперсс говорил, я просто как-то там купил кучку кубиков, чтобы магнитный енкодер сделать на ADA4571 так AMRу же особо без разницы поле, он только направление показывает, а не амплитуду. лишь бы больше пары десятков мТ было и ладно. а с алиэкспресса и просто из железа кубики могли прислать :) Quote Share this post Link to post Share on other sites More sharing options...
iiv 1 October 3, 2021 Posted October 3, 2021 · Report post 8 minutes ago, _pv said: а с алиэкспресса и просто из железа кубики могли прислать :) так я собственно и остерегаю ТС от того, что не факт, что он будет использовать магниты от надежного и проверенного источника, и поле от магнита может быть очень отличающимся от того, что он мог бы ожидать. Quote Share this post Link to post Share on other sites More sharing options...
AlanSbor 0 October 12, 2021 Posted October 12, 2021 · Report post Закончил мотать катушку для калибровки датчиков. почти 2 недели с перерывами на лечение короны. Провод диаметром 0,315 мм с лаком 0,33мм диаметр трубы 32,32мм длина намотки 320 мм Магниты оказались обычными но точными, по крайней мере по размерам. Спасибо за ссылочку на немецкие магниты, впервые увидел, что можно магниты изготавливать так точно. Поле не более +- 16 Гаус. Датчики на оригинальной плате стоят LIS3MDL lis3mdl.pdf Quote Share this post Link to post Share on other sites More sharing options...
AlanSbor 0 June 16, 2022 Posted June 16, 2022 (edited) · Report post Всем добрый вечер! В продолжение темы. Дошел до математики. И често сказать, я все забыл или почти всё. :( Прошу разъяснить моменты по двум работам, приложу в конце. Идея таже - определение положения магнита, относительно массива датчиков магнитометров 3d. Как выяснилось тема достаточно животрепещущая не только у меня но и у ... колоноскопистов. Оказывается они эту тоже развивают. У них описана математика, но мне она не расскажет сам алгоритм, что с чем считать, хоть и формулы там всего в два этажа. Начало математики у них одинаковое, а вот дальше - темный лес для меня. Если есть возможность, я бы с удовольствием пообщался лично онлайн, что бы понять откуда что и куда. Заранее прошу не пинать сильно. A_New_Calibration_Method_for_Magnetic_Sensor_Array.pdf array massive sensors-small001.pdf Edited June 16, 2022 by AlanSbor Quote Share this post Link to post Share on other sites More sharing options...
iiv 1 June 16, 2022 Posted June 16, 2022 · Report post я честно говоря из статьи не смог понять каким именно методом они это оптимизировали, и почему у них такая непредсказуемая сходимость. Как я говорил, пишите наименьшие квадраты (в статье есть как), пишите первые и вторые производные, пишите Ньютона с релаксацией, и тогда все должно работать. Теоретически неизвестных у вас 5, но я бы взял 6 (три координаты местоположения магнита и 3 координаты направленности магнитного поля - почти уверен, что с 6-ю неизвестными сходиться будет лучше), то посчитать частные первые и вторые производные не должно составить большого труда, хотя я бы это делал бы с помощью мэпла или математики, чтобы не ошибиться случайно. Ньютон с релаксацией есть в википедии, там нет ничего страшного, систему уравнений 6х6 для Ньютона решать можно и Гауссом в несколько строчек кода. Хотя не спорю, что если Вы это раньше ни разу не делали, то сделать конечно можно, но придется долго и упорно стараться. Если на этом пути будут возникать конкретные непонимания или проблемы - спрашивайте, поможем, подскажем. Ньютон с релаксацией наверное можно откуда-то скачать, а вот производные считать всяко самому придется. Более простого пути не вижу, квазиньютон будет существенно сложнее, другие методы минимизации будут сильно неустойчивы/численно трудоемки/не тривиально программируемы, а аналитического решения у такой задачи быть не должно. Quote Share this post Link to post Share on other sites More sharing options...
_pv 21 June 17, 2022 Posted June 17, 2022 · Report post 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мм на расстояниях в те же десятки мм уже, наверное, не очень, то есть ещё и поле от магнита надо более аккуратно считать, и чтобы не интегрировать численно можно в какую-нибудь магнитостатическую считалку засунуть, и разницу между диполем и посчитанным полем в области около магнита каким-нибудь полиномом небольшой степени аппроксимировать. Quote Share this post Link to post Share on other sites More sharing options...
iiv 1 June 17, 2022 Posted June 17, 2022 · Report post 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-ти мерный массив будет очень хорошо аппроксимироваться малоранговым пятимерным тензором. Тогда этот тензор можно будет в виде таблицы воткнуть в МК аппаратуры и по нему реконструировать местоположение, но вот осилит ли ТС такой метод или нет, тут большой вопрос, боюсь, что Ньютон будет проще,... именно проще, но, к сожалению, не быстрее. Quote Share this post Link to post Share on other sites More sharing options...
_pv 21 June 17, 2022 Posted June 17, 2022 · Report post 1 hour ago, iiv said: То есть если там все-таки кольцо, то ИМХО, разбивать его на 20-30 сегментов в каждом представляя одиночным диполем, и численно дальше все. А вот когда придет понимание, то, уже пытаться чем-то аппроксимировать. тогда уж проще "аналитически" (с эллиптическими интегралами) честно считать поле цилиндрического магнита. 1 hour ago, iiv said: если банально поснимать на декартовой сетке местоположение магнита со всеми различными направлениями этот массив можно и без измерений опять же просто из симуляции заполнить, а потом уже по калибровке с реальными измерениями немнонго подправить. зато без математики и какой-либо аппроксимации вообще, сначала посчитали показания всех датчиков для всевозможных положений и наклонов магнита, потом просто ищем в этом 5ти мерном массиве карт полей наиболее близкую к измеренной, там можно потом несколько точек вокруг брать с интерполяцией искать положение точнее. терабайт флэш памяти под такую многомерную look-up таблицу нынче не сильно дорого стоит, вполне сравнимо с ценой сотни магнитных датчиков :) Quote Share this post Link to post Share on other sites More sharing options...
AlanSbor 0 June 17, 2022 Posted June 17, 2022 · Report post В 17.06.2022 в 00:53, iiv сказал: я честно говоря из статьи не смог понять каким именно методом они это оптимизировали, и почему у них такая непредсказуемая сходимость. Как я говорил, пишите наименьшие квадраты (в статье есть как), пишите первые и вторые производные, пишите Ньютона с релаксацией, и тогда все должно работать. Теоретически неизвестных у вас 5, но я бы взял 6 (три координаты местоположения магнита и 3 координаты направленности магнитного поля - почти уверен, что с 6-ю неизвестными сходиться будет лучше), то посчитать частные первые и вторые производные не должно составить большого труда, хотя я бы это делал бы с помощью мэпла или математики, чтобы не ошибиться случайно. Ньютон с релаксацией есть в википедии, там нет ничего страшного, систему уравнений 6х6 для Ньютона решать можно и Гауссом в несколько строчек кода. Хотя не спорю, что если Вы это раньше ни разу не делали, то сделать конечно можно, но придется долго и упорно стараться. Если на этом пути будут возникать конкретные непонимания или проблемы - спрашивайте, поможем, подскажем. Ньютон с релаксацией наверное можно откуда-то скачать, а вот производные считать всяко самому придется. Более простого пути не вижу, квазиньютон будет существенно сложнее, другие методы минимизации будут сильно неустойчивы/численно трудоемки/не тривиально программируемы, а аналитического решения у такой задачи быть не должно. Я готов изучать и учиться и производные брать готов. Мне самому по пунктам построить алгоритм будет понятнее, если взять для примера мой случай. Главное скажите что взять и что посчитать, я сделаю. Quote Share this post Link to post Share on other sites More sharing options...
AlanSbor 0 June 17, 2022 Posted June 17, 2022 · Report post В 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. Почему так, ответ один - стоимость и импорт. Вопрос: как обсчитать позицию постоянного магнита через метод Ньютона? Я посмотрел пример для простого уравнения Вот этот все понятно и про производные (беру из таблицы производных или онлайн калькулятор или матлаб или мапл) и про итерации тоже все понятно. Не понял про a и b. Кто их определяет или по каким критериям их определяют что бы получить сходимость ? про точность по итерациям тоже все понятно как ее определять, но не понятно какая точность должна быть у моей системы и почему ? Сколько мне нужно сделать итераций чтобы гарантированно достичь нужной точности и как это отразится на производительности контроллера ? В работах которые выложил ранее у них более 100 итераций и им как я понял этого мало. Composite Drawing.pdf В 17.06.2022 в 18:15, _pv сказал: тогда уж проще "аналитически" (с эллиптическими интегралами) честно считать поле цилиндрического магнита. этот массив можно и без измерений опять же просто из симуляции заполнить, а потом уже по калибровке с реальными измерениями немнонго подправить. зато без математики и какой-либо аппроксимации вообще, сначала посчитали показания всех датчиков для всевозможных положений и наклонов магнита, потом просто ищем в этом 5ти мерном массиве карт полей наиболее близкую к измеренной, там можно потом несколько точек вокруг брать с интерполяцией искать положение точнее. терабайт флэш памяти под такую многомерную look-up таблицу нынче не сильно дорого стоит, вполне сравнимо с ценой сотни магнитных датчиков :) Терабайт это конечно хорошо. Но может метод без него есть ? Quote Share this post Link to post Share on other sites More sharing options...
iiv 1 June 17, 2022 Posted June 17, 2022 · Report post 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: Я посмотрел пример для простого уравнения Вот этот я не осилил видео посмотреть, но, думаю, что если Вы наберете меня вотсапом, то смогу понятно рассказать и ответить на все Ваши вопросы и по поводу Ньютона, и по поводу тензорной аппроксимации, так как я как раз на численных методах специализируюсь. Quote Share this post Link to post Share on other sites More sharing options...
_pv 21 June 17, 2022 Posted June 17, 2022 · Report post 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 Quote Share this post Link to post Share on other sites More sharing options...
iiv 1 June 18, 2022 Posted June 18, 2022 · Report post On 6/17/2022 at 10:39 PM, _pv said: да вроде как конечный аксиально намагниченный цилиндр ровно как и конечный соленоид, хоть и с эллиптическими интегралами, но решение имеют. а, да, Вы правы, аксиально намагниченный, запамятовал. Я, в свое время искал решение в более общем виде, когда вектор намагниченности не аксиальный, а направлен по всему объему материала под углом к оси. Кстати, если предположить, что ТС нужно решение, когда его цилиндрик высотой с 5-7мм находится гарантированно на 20мм+ от поверхности, то тут проще одним диполем все аппроксимировать. Quote Share this post Link to post Share on other sites More sharing options...
AlanSbor 0 June 18, 2022 Posted June 18, 2022 · Report post В 17.06.2022 в 20:01, iiv сказал: Всем доброго вечера! Сделал пару заметок. Скажите пожалуйста куда дальше копать ? Я не понял одного , измерить мы можем, по тексту, нет проблем. А вот вычислить ? Мы же не знаем где в данный момент находится магнит. Нам нечего будет вычитать. Или в этом и смысл ? Или я не правильно понимаю метод суммы наименьших квадратов ? Quote Share this post Link to post Share on other sites More sharing options...
_pv 21 June 18, 2022 Posted June 18, 2022 · Report post есть измеренные значения датчиков {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... по ходу движения, чтобы побыстрее прийти в минимум и желательно не заблудившись при этом в каком-нибудь локальном минимуме. Quote Share this post Link to post Share on other sites More sharing options...