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

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

Я строю робота/гусеничного автомобиля с 4 колесами. Каждое колесо напрямую подключено к двигателю постоянного тока 6 В 210 об/мин с энкодерами.

У меня двухсторонний драйвер двигателя с двумя Н-мостами.

Драйвер питается от аккумулятора LiPo 2S 7,4 В.

введите описание изображения здесь

2 правых двигателя подключены параллельно к одному Н-мосту и 2 левых двигателя ко второму Н-мосту драйвера.

Я управляю двигателями через Arduino UNO, отправляя сигналы ШИМ на ШИМ драйвера.

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

У меня проблема в том, что двигатели, которые подключены параллельно, двигаются с разной скоростью, хотя получают одинаковое напряжение/ШИМ-сигнал. Также их характеристики идентичны.

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

Вот мои идеи:

  • Имеет ли смысл считывать значения энкодера с обоих двигателей, подключенных параллельно? Я думаю, что нет, потому что, если я попытаюсь уменьшить/увеличить ШИМ - это повлияет на оба, и более быстрый двигатель все равно будет быстрее.
  • Может быть, подключить резистор к более быстрому двигателю и попытаться найти хорошее значение для более быстрого двигателя, чтобы замедлить его до момента, когда он будет вращаться синхронно с другим. Но тогда это будет работать только в том случае, если их разница в скорости также пропорциональна.
  • Последняя идея состоит в том, чтобы сопоставить их по наименьшей разнице в скорости и соединить параллельно те пары, которые находятся ближе всего друг к другу.

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

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

Ответы (1)

Двигатели постоянного тока всегда будут работать с разными скоростями.

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

Если двигатели являются ведущими колесами, которые касаются земли, и разница крутящего момента между ними недостаточно велика, чтобы вызвать проскальзывание «шин», это может не быть проблемой, поскольку контакт с землей будет действовать как механическое соединение между двигателями. Примечание. Именно так ведущие колеса вашего автомобиля сохраняют одну и ту же скорость, несмотря на то, что они проходят через дифференциальную коробку передач. Однако потеря контакта с землей может вызвать некоторые странные эффекты.

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

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

Спасибо за быстрый ответ. Это дало мне лучшее представление обо всем этом, так как я не был уверен, что делаю это правильно или ужасно неправильно. У гусеницы нет гусениц, но ее колеса большую часть времени касаются земли, так что если это не проблема, то это идеально. Также я мог бы подумать о покупке нового драйвера для двух других двигателей и идеальной синхронизации с помощью программного обеспечения. Что касается схемы переключения, я полагаю, это отдельное устройство, которое будет стоять между драйвером и двигателями, подключенными параллельно?
@gsdaemon да, как вы подозреваете, это будет новый промежуточный этап. Но опять же, к тому времени, когда вы это сделаете, вы могли бы создать/добавить еще один драйвер.
Ответ правильный, однако существует простое решение проблемы: при последовательном соединении двух двигателей постоянного тока ток будет одинаковым, как и получаемый крутящий момент (учитывая, что оба двигателя имеют одинаковую характеристику крутящий момент/скорость) в обоих двигателях. имеющих одинаковую скорость. Это электрический эквивалент прямого механического соединения, который также делает крутящий момент таким же.
@Janka eek ... Соединение двигателей постоянного тока последовательно - плохая идея. Ваше предположение, что соотношение крутящий момент/скорость идентично. Этого никогда не бывает. С поднятыми колесами один глохнет, другой перенапрягается и едет слишком быстро.
Речь идет об экспериментах, чтобы найти и понять вещи. Возможные плохие идеи должны быть реализованы, чтобы добиться прогресса в понимании.
Да, это именно то, что сделал бы дифференциал. gsdeamon может определить это состояние с помощью отдельных датчиков скорости и уменьшить внешнее напряжение до тех пор, пока проскальзывание не исчезнет.
@Janka Янка, проблема в том, что если управляемый приводной двигатель заглох, вы никогда не сможете его запустить.
@gsdaemon Мониторинг обоих двигателей был бы хорошей идеей, как минимум. Возможно, используйте тот двигатель, который медленнее, в качестве обратной связи по скорости. При легком механическом соединении он должен уравновеситься.
@Janka, Тревор - большое спасибо за ваши дополнительные комментарии! У меня возникает соблазн попробовать последовательное соединение и посмотреть, заставляет ли это оба двигателя вращаться с одинаковой скоростью без нагрузки, но я не уверен, почему последовательное соединение все еще является плохой идеей? Кроме того, если один из двигателей выйдет из строя, оба больше не будут вращаться. Кроме того, поскольку моторы на 6 В, а я питаю их от 7,4-вольтовой батареи LiPo, которая при 100% зарядке дает выходное напряжение 8,3 В, при последовательном соединении каждый мотор будет получать ~4 В. Не сделает ли это их медленнее? Также не проблема подать 8,3 В на двигатель постоянного тока 6 В?
Тревор возразил, потому что крутящий момент один и тот же, когда один двигатель работает свободно, а другой застрял, скорость может начать различаться. Это связано с тем, что рабочая точка двух дисков больше не одинакова. Это правда, но опять же, это исключительная ситуация. Пока оба колеса соединены контактом с землей, все должно быть в порядке. Не забудьте проверить, не слишком ли отличается скорость отдельных дисков.
Проблема @gsdaemon с последовательно соединенными двигателями постоянного тока заключается в том, что тот, у кого крутящий момент выше, ускорит более быстрое кражу мощности у другого. Таким образом, другой имеет тенденцию останавливаться, в то время как первый движется слишком быстро. Это дифференциальная система. Однако с механической муфтой он все же уравновешивается. НО теперь вы должны принять дополнительные меры для защиты от перенапряжения и превышения скорости.
О, и да, вам пришлось увеличить внешнее напряжение для последовательного соединения. Перенапряжение не разрушит двигатель постоянного тока, только превышение скорости. Вы можете ограничить это с помощью ШИМ.
Другой проблемой последовательно соединенных двигателей постоянного тока являются коммутационные эффекты. Помните, что питание, подаваемое на второй двигатель, также будет прервано коммутатором первого двигателя. Это приведет к некоторым странным эффектам крутящего момента и значительным электромагнитным помехам в соединениях/проводах между двигателями, а также к повышенному искрению и износу щеток.
@Janka на самом деле перенапряжение увеличивает искрение и износ щеток, но вы правы, если вы держите ток ниже предела, само напряжение не повредит его, если предположить, что оно не смехотворно высокое.
Итак, лучший способ, который соответствовал бы моим потребностям, это либо купить второй драйвер, либо оставить их как есть и полагаться на механическое соединение с помощью контакта с землей. Также я бы прочитал скорости всех 4 двигателей и взял бы в качестве основного значения более низкую скорость между более высокими скоростями правой и левой стороны. Что-то вроде: LHigh = (L1 > L2 ? L1 : L2); RHigh = (R1 > R2 ? R1 : R2); SideToLowerPWM = (LHigh < RHigh ? 'RIGHT' : (LHigh > RHigh ? 'LEFT' : 'NONE'));мне придется брать более высокие скорости с каждой стороны, потому что, когда одно из колес заглохнет, краулер остановится. Также нужна проверка на 0
@gsdaemon да, я бы начал с одного драйвера и надеюсь, что заземления + программного обеспечения будет достаточно. Если вы обнаружите, что вам приходится ездить по пересеченной местности, где колеса регулярно теряют контакт, используйте механический сцепной ремень или наймите другого водителя.