Отсечение тока с помощью h-моста и ШИМ

У меня есть несколько шаговых двигателей и драйверы двойного моста L298N. Я не могу найти точные характеристики шаговых двигателей*, но аналогичные двигатели из другой линейки продуктов имеют номинальное напряжение от 2,64 В до 5,8 В. Поскольку большинство источников питания не имеют этих точных значений, кажется, что необходимо прерывание тока.
*Minebea, компания, производившая моторы, говорит, что моторы были частью индивидуального заказа, поэтому у них нет спецификаций.

У меня была идея, что прерывание тока без обратной связи может быть возможно с помощью ШИМ от платы контроллера (в данном случае Arduino). Поскольку крутящий момент не является большой проблемой, он должен работать нормально без необходимости компенсации изменений противоЭДС.

Используя мягкую ШИМ, я смог сгенерировать сигнал 20 кГц, а мог бы и выше.

На странице 4 таблицы данных, которую я нашел для L298N, перечислены несколько времен задержки (например, «Задержка выключения тока источника»). Эти значения должны быть весьма уместны здесь. На странице 2 также указан пиковый выходной ток для разных временных диапазонов. Меня это немного беспокоит, потому что максимальный повторяющийся ток составляет 2,5 А. Если я правильно читаю нижнюю часть страницы 3, общее падение напряжения составляет не менее 1,8 В. Каким может быть падение при более высоком напряжении, скажем, 12 В?

Вопрос в том, является ли действенной стратегией запуск шагового двигателя при высоком напряжении (например, 12 В) путем прерывания тока путем переключения h-моста? Я видел только пару ссылок на это ( здесь и здесь ), хотя ни один из них полностью не отвечает на вопрос. Я хочу быть уверен, что это не поджарит ни h-мост, ни степпер.

Ответы (2)

Это действительно хорошая стратегия — отключать ток от источника с более высоким напряжением (например, 12 В) для питания шагового двигателя. На самом деле, большинство встроенных драйверов шаговых двигателей делают это именно так (взгляните, например, на таблицу данных DRV8825).

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

Теперь, что касается ваших сомнений по поводу максимального тока L298. Ток - это не пиковое импульсное напряжение, деленное на сопротивление обмотки. Поскольку вы рубите на высокой частоте, ток будет сглаживаться индуктивностью обмотки (это то, что мы хотим). Так что на самом деле это среднее напряжение (в зависимости от рабочего цикла), деленное на сопротивление. Следовательно, если у вас рабочий цикл 50%, это составляет 6 В (без учета потерь), и у вас будет ток 1,5 А. Кажется, ты в порядке.

Что касается вопроса о падении напряжения, то в паспорте указано напряжение питания 42 В. Но в любом случае это не должно зависеть от напряжения питания. Больше зависит от тока нагрузки. Поэтому я не уверен, что понимаю эту часть вопроса.

Спасибо, это очень обнадеживает. Я ошибочно объединил «степперы могут работать при напряжении, намного превышающем номинальное» с «компоненты потребляют только тот ток, который им нужен», чтобы сформировать (очевидно ложный) вывод, о котором мне не нужно было беспокоиться! Вопрос о падении напряжения был основан на идее о том, что через обмотку двигателя будет проходить меньшее напряжение, что приведет к меньшему протеканию тока. Другими словами, я думаю об эффекте внутреннего сопротивления. Но я думаю, что это не проблема, основанная на вашем заявлении it is actually the average voltage ... divided by the resistance.
Немного связанно: есть ли польза или вред от увеличения частоты? 20 кГц — это просто цифра, которую я где-то прочитал и жестко запрограммировал в своем скетче. 200 кГц - это, вероятно, максимум, на который может рассчитывать Arduino, и я сомневаюсь, что L298 сможет с ним справиться.
Я не смотрел на проблемы времени/частоты переключения. Но в основном, если переключать слишком медленно, ток не будет достаточно сглажен. Это зависит от индуктивности вашего двигателя. И, если вы будете переключаться слишком быстро, у вас будут большие потери при переключении, и в определенный момент драйвер даже не сможет угнаться за ним. Обычно драйверы шаговых двигателей используют частоту переключения в диапазоне 20-50КГц. В техническом описании L298 указано типичное значение 25 кГц и максимальное значение 40 кГц. Так что выбирайте, но я бы не пошел намного выше, чем обычно.
Хорошо спасибо. В этом есть смысл. Я новичок в чтении таблиц данных, но вы не упомянули, что я это вижу.

В техническом описании L298 см. раздел «3. ПРИМЕНЕНИЕ». В этом разделе описано и схематично показано несколько схем ограничения тока прерыванием.

Падение напряжения 1,8 В мин — это Vce(sat) внутренних транзисторов, которое зависит от тока, а не от напряжения. Это напряжение, которое вы теряете из-за несовершенного переключения транзистора.

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

Спасибо. Одной из моих главных проблем было то, –Repetitive (80% on –20% off; ton = 10ms)что было 2,5А. Если мы предположим 4 Ом для шагового двигателя на 12 В, это 3 А. Можно ли рассчитать примерное внутреннее сопротивление L298n? Я предполагаю, что проблем не будет, потому что я бы использовал рабочий цикл ближе к 25%, а не к 80%, и намного быстрее (около 13 мкс, а не 10 мс). Я не уверен в точном сопротивлении обмотки двигателя, потому что мой омметр сломан (я получил приблизительные измерения с помощью Arduino, я думаю, оно должно быть не менее 4 Ом).
Эквивалентное сопротивление L298 можно оценить при определенном фиксированном токе (согласно техпаспорту), однако это активная часть внутреннего транзистора и эквивалентное сопротивление изменяется при изменении тока. Вероятно, вы можете ожидать внутренних потерь около 2 В, поэтому вы можете оценить максимальный ток, предполагая около 10 В на двигателе. (Как и в другом ответе, ток может даже не достигать этого максимума из-за индуктивных эффектов и быстрого переключения.) Наконец, вы можете добавить чувствительные резисторы среднего значения (см. Лист данных), чтобы еще больше ограничить ток, если вы беспокоитесь об этом. .