Как стабилизировать систему магнитной левитации?

Я следил за всем в этом проекте, но магнит все равно не левитирует - https:// www.hackster.io/jsirgado/magnet-levitation-with-arduino-eeee4

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

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

Так что же я здесь упускаю? Будет ли полезна реализация быстрого режима PWM?

, 👍0

Обсуждение

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

Я попробовал это, и для меня он вибрирует вверх-вниз и даже вбок. Как погасить эту вибрацию, чтобы сделать ее стабильной? Поможет ли здесь быстрый режим PWM?, @suu

Это похоже на чрезмерную коррекцию. Не знаю, что с этим делать. Я не настолько знаком с PID., @Gerben

@suu, если он вибрирует, я предполагаю, что ваш PID слишком сильный. Что произойдет, если вы поэкспериментируете с усилением, удерживая магнит? Пробовали менять положение датчика холла? Я не думаю, что переход на быстрый ШИМ что-то изменит..., @Sim Son

Возможно, у магнита слишком высокая индуктивность, чтобы достаточно быстро регулировать магнитное поле. Тогда вы потеряете разрешение, которое уже очень ограничено на uno и ухудшит качество вашего контура управления. То же самое относится к аналоговому измерению, вы должны попытаться использовать 10 бит, которые вы получаете от АЦП Arduino, как можно лучше. Для отладки вы можете контролировать рабочий цикл и аналоговые показания., @Sim Son

Я попробовал уменьшить усиление ПИД-регулятора и также изменил положение датчика ниже и выше постоянного магнита. Я проверю насчет разрешения., @suu

Я бы посмотрел на время обновления кода PID по сравнению с постоянной времени физической системы. Если ваш PID производит выборку и настраивается намного быстрее или медленнее, чем реагирует физическая система, вы можете получить колебания. В статье рекомендуется "Тяжелые объекты более стабильны", так что, возможно, электромагнит слишком силен для системы управления. Может быть, попробовать увеличить массу магнита или уменьшить напряжение/мощность электромагнита?, @Dave X


1 ответ


1

Ответ на решение был довольно прост. Мне просто нужно было закомментировать все чтение последовательного порта, и обработка Arduino стала в 60 раз быстрее, что помогло левитировать магнит. Спасибо всем, кто помог мне здесь :)

,