плавный старт\торможение коллекторных моторов в тяжелом роботе.

sten8606
Offline
Зарегистрирован: 28.08.2015

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

SLOM
Offline
Зарегистрирован: 06.11.2014

вот тут http://arduino.ru/forum/proekty/tank-upravlyaemyi-dzhoistikom-ps-2?page=3   управление моторами с джойстика, посути тот же резистор

sten8606
Offline
Зарегистрирован: 28.08.2015

В общем получилось. Благодаря моему другу прогеру, и SLOMу (твой код взят за основу).Подключение IBT 2:

RPWM - D9; LPWM - D10; R_EN, L_EN - D2, ну и соответственно VCC GND.

Запуск вперед D4, назад D5.

#define motorUp  (9) // шим вперед
#define motorDown  (10) // шим назад

const int acceleratorUp = 4; //кнопка вперед
const int acceleratorDown = 5; //кнопка назад
const int activate = 2; // разрешение
int accelStateUp = 0;
int accelStateDown = 0;
int forw_back = 0;
byte step_fb = 25;     // Шаг изменения скорости движения вперед - назад
byte step_stop = 25;  // Шаг изменения скорости остановки
byte MaxSpeed = 250; // Максимальная скорость
byte MinSpeed = 25;  // Минимальная скорость
int Up = 0;
unsigned long pre_millis = 0;

void setup() {
   pinMode(motorUp, OUTPUT);
   pinMode(motorDown, OUTPUT);
   pinMode(acceleratorUp, INPUT);
   pinMode(acceleratorDown, INPUT);
   pinMode(activate, OUTPUT);
}

void loop(){
  digitalWrite(activate, HIGH); 
  accelStateUp = digitalRead(acceleratorUp);
  accelStateDown = digitalRead(acceleratorDown);
  static unsigned long pre_millis = 0;
  if(millis()-pre_millis > 50)
  {
     pre_millis = millis();
     if(accelStateUp == HIGH)
    {
      Up = 1;
      forw_back += step_fb;
      if(forw_back > 0 && forw_back < MinSpeed) forw_back = MinSpeed;
    }
    else  if(accelStateDown == HIGH)
    {
      Up = 0;
      forw_back -= step_fb;
      if(forw_back < 0 && forw_back > MinSpeed*-1) forw_back = MinSpeed*-1;
    }
    else 
    {
      if(forw_back < 0) forw_back += step_stop;
      else if(forw_back > 0) forw_back -= step_stop;
      if(abs(forw_back) < MinSpeed) forw_back = 0;
    }
    forw_back = constrain(forw_back, MaxSpeed*-1, MaxSpeed);
      if(Up == 1){
      analogWrite(motorUp, abs(forw_back));
    }
    else{
    analogWrite(motorDown, abs(forw_back));  
    }
  }

}

Сделали без установки резистором максимальной скорости, машинка и так не быстро едет. Главное плавный пуск и стоп, и механике легче и ребенку управлять будет проще (раньше дергалась так, что можно было удариться об руль при старте и остановке). Скоро буду устанавливать на машинку.

 

SLOM
Offline
Зарегистрирован: 06.11.2014

sten8606 хорошо что у вас все получилось!  а код кстати не мой, мне тоже ктото помог дав кусок кода... 

кстати ваш друг программист не мог бы сделать коментарии к коду пояснив где что и для чего, а то этот код досих пор для меня энигма ))

sten8606
Offline
Зарегистрирован: 28.08.2015

Спрошу, может поможет.

diger67
Offline
Зарегистрирован: 25.07.2015

Думаю решать данную проблему программным путем не верно. Сдесь надо применять прямоприводные безколлекторные двигатели, и систему сцепления. По определению коллекторные двигатели начинают работать при определенном токе в роторе. На малых токах тупо не хватает крутящего момента. Из практики и курса электрических машин знаю, что при  низких оборотах резко возрастают токи. Это чревато частым выходом из строя ключей, быстрым разрядом элементов питания. вообщем большими энерго потерями.

Олег М.
Олег М. аватар
Offline
Зарегистрирован: 22.11.2015

diger67 пишет:

Думаю решать данную проблему программным путем не верно. Сдесь надо применять прямоприводные безколлекторные двигатели, и систему сцепления. По определению коллекторные двигатели начинают работать при определенном токе в роторе. На малых токах тупо не хватает крутящего момента. Из практики и курса электрических машин знаю, что при  низких оборотах резко возрастают токи. Это чревато частым выходом из строя ключей, быстрым разрядом элементов питания. вообщем большими энерго потерями.

+5!
Что и требовалось доказать.
См.  #45

SLOM
Offline
Зарегистрирован: 06.11.2014

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

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

sten8606
Offline
Зарегистрирован: 28.08.2015

diger67 пишет:

Думаю решать данную проблему программным путем не верно. Сдесь надо применять прямоприводные безколлекторные двигатели, и систему сцепления. По определению коллекторные двигатели начинают работать при определенном токе в роторе. На малых токах тупо не хватает крутящего момента. Из практики и курса электрических машин знаю, что при  низких оборотах резко возрастают токи. Это чревато частым выходом из строя ключей, быстрым разрядом элементов питания. вообщем большими энерго потерями.

Поясните какую именно проблему имеете ввиду?

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

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

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

diger67
Offline
Зарегистрирован: 25.07.2015

Шим  не шим, всеравно на выходе выпрямленное напряжение. Чем оно ниже, тем дольше ключь или мост находится в ркжиме КЗ. Следовательно по цепи проходит бешенный ток. Как следствие повышенный разряд аккумулятора, необходимость ставить более мощные ключи и диоды защиты.

SLOM
Offline
Зарегистрирован: 06.11.2014

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

diger67
Offline
Зарегистрирован: 25.07.2015

SLOM пишет:

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

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

sten8606
Offline
Зарегистрирован: 28.08.2015

Что то diger67 напутал...

diger67
Offline
Зарегистрирован: 25.07.2015

sten8606 пишет:

Что то diger67 напутал...

Что именно, почитайте как работает любая система управляемая ШИМ. А еще лучше попробуйте без интегрирующей цепи подать ШИМ через ключ прямо на двигатель постоянного тока.

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Да ну нифига не правы. При малом ШИМ никаких "сверхтоков" через якорь (и соответственно драйвер) не потечет .. банально не успеет. есть такое явление как индукция и самоиндукция обмотки мотора .. даже для мелких 130-х моторов (типовые детские игрушки) индуктивность обмотки якоря лежит в районе 0.25 .. 1 генри. Загнать "сверхток" в такую индуктивность "мгновенно" увы не получится в типовых схемах и драйверах.

Да, и тяговый момент мотора зависит исключительно от величины тока пробегающего в нем. Больше по сути ни от чего. Так что "бешенный ток" только бешено крутанет мотор .. чего никак не наблюдается.

А наблюдается банальное увеличение наименьшего ШИМ при росте его частоты. Так, тот же 130-й мотор, запускается на 10-20% ШИМ при его частоте в единицы и до десятков герц .. и только на 25-30% ШИМ при десятке килогерц .. почто так по-вашему? :)

sten8606
Offline
Зарегистрирован: 28.08.2015

diger67 пишет:

SLOM пишет:

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

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

Причем тут переменный ток???

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

 

sten8606
Offline
Зарегистрирован: 28.08.2015

Вот осциллограмма хорошо показывающая подаваемое ШИМ напряжение и ток (скважность 30%):

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Фигня какая-то, а не осцилограмма или драйвер мотора крив как турецкая сабля. Откуда там ток в промежутке между импульсами ШИМ, да практически ровный, как будто драйвера и нет вовсе? Выбросы прямые и обратные .. тоже "непонятно что". Работа защитных диодов драйвера - хде? Да, и что за мотор?

sten8606
Offline
Зарегистрирован: 28.08.2015

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

Andy
Andy аватар
Offline
Зарегистрирован: 01.01.2016

Arhat109-2 пишет:
Откуда там ток в промежутке между импульсами ШИМ
По твоему в перерывах между импульсами ШИМ ток через обмотку двигателя не протекает? Несколько выше ты же утверждал, что через индуктивность ток резко не изменить, а сейчас сам себе противоречишь.

diger67
Offline
Зарегистрирован: 25.07.2015

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

Andy
Andy аватар
Offline
Зарегистрирован: 01.01.2016

diger67, ты тоже жжешь нипадецки. Удиви: "почему при уменьшении угловой скорости вращения ротора, якорь это у нубасов, возростает ток в его обмотке"...

sten8606
Offline
Зарегистрирован: 28.08.2015

Прочитав все сообщения diger67 в этой ветке, я так и не понял какую мысль он пытается донести... 

diger67
Offline
Зарегистрирован: 25.07.2015

Andy пишет:

diger67, ты тоже жжешь нипадецки. Удиви: "почему при уменьшении угловой скорости вращения ротора, якорь это у нубасов, возростает ток в его обмотке"...

Потому как время контакта щетки с коллектором РОТОРА увеличивается прямо пропорционально с уминьшением угловой скорости вращения. Что в  совокупности с достаточно маленьким сопротивлением обмотки приводит к режиму кратковременного КЗ. Даже при напряжени в 1 вольт под нагрузкой на валу в момент t через обмотку может протекать импульсный ток от 1 до 5 А. Чем меньше угловая скорость, тем шире импульс самоиндукции. А сказать хотел только то, что в любой колесной или гусинечной технике любое изменениена правления движения производится чераз полную остановку и как правильно замечено проектировщиком желательно плавную. Применив прямоприводной двигатель проще варьировать скорость движения, происходит это путем изменения частоты смены полюсов, плюс отутствие щеток.

Andy
Andy аватар
Offline
Зарегистрирован: 01.01.2016

diger67 пишет:
Потому как время контакта щетки с коллектором РОТОРА увеличивается прямо пропорционально с уминьшением угловой скорости вращения. Что в  совокупности с достаточно маленьким сопротивлением обмотки приводит к режиму кратковременного КЗ. Даже при напряжени в 1 вольт под нагрузкой на валу в момент t через обмотку может протекать импульсный ток от 1 до 5 А. Чем меньше угловая скорость, тем шире импульс самоиндукции. А сказать хотел только то, что в любой колесной или гусинечной технике любое изменениена правления движения производится чераз полную остановку и как правильно замечено проектировщиком желательно плавную. Применив прямоприводной двигатель проще варьировать скорость движения, происходит это путем изменения частоты смены полюсов, плюс отутствие щеток.
Wow, круто!!! Вот оно чё, а я то думал, что ток двигателя это разница между приложенным напряжением и ЭДС самоиндукции, деленная на сопротивление ЯКОРЯ.

diger67
Offline
Зарегистрирован: 25.07.2015

Andy пишет:

Wow, круто!!! Вот оно чё, а я то думал, что ток двигателя это разница между приложенным напряжением и ЭДС самоиндукции, деленная на сопротивление ЯКОРЯ.

При возбуждении тока в обмотке, как и в трансформаторе есть пусковой ток. А это сумма приложенного напряжения и ЭДС самоиндукции. Не замечали, что при снижении питания на коллекторном двигателе и ключ и сам двигатель начинают греться. А это визуальное подтверждение сказанного выше.

Andy
Andy аватар
Offline
Зарегистрирован: 01.01.2016

diger67 пишет:
При возбуждении тока в обмотке, как и в трансформаторе есть пусковой ток. А это сумма приложенного напряжения и ЭДС самоиндукции.

ЭДС самоиндукции это произведение магнитного потока статора на скорость вращения ротора. У остановленного двигателя ЭДС самоиндукции по определению равна нулю. Поэтому в статике ток равен приложенному напряжению деленному на сопротивление якоря.

diger67 пишет:
Не замечали, что при снижении питания на коллекторном двигателе и ключ и сам двигатель начинают греться. А это визуальное подтверждение сказанного выше.
Вот как тебе удается снижать напряжение питания на двигателе при помощи ключа? Это же ключ, включили напряжение подано, выключили - снято. Во время включения ток через двигатель нарастает экспоненциально (двигатель это индуктивность, а ток через индуктивность не может измениться скачком, это аксиома). Ограничивая продолжительность включенного состояния мы фактически ограничиваем предел нарастания тока.

 

diger67
Offline
Зарегистрирован: 25.07.2015

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

Andy
Andy аватар
Offline
Зарегистрирован: 01.01.2016

И тебе удачи, готовься к ЕГЭ, слишком много грамматических ошибок в тексте...

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

diger67
Offline
Зарегистрирован: 25.07.2015

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

Олег М.
Олег М. аватар
Offline
Зарегистрирован: 22.11.2015

sten8606 пишет:

Вот осциллограмма хорошо показывающая подаваемое ШИМ напряжение и ток (скважность 30%):

Привет всем!

Добавлю своего лыка в ваши строки.
Диаграмму хоть и раскритиковали, тем не менее на ней хорошо видны броски тока при открывании ключей.
Чисто на глазок пики примерно вдвое выше среднего уровня.
А чем меньше скорость вращения мотора - тем больше будет отношение Iпик/Iсреднее.
Эти броски тока во первых, палят щетки и коллектор, во-вторых, хреново действуют на акк, могут перегружать и ваши ключи.
А во-вторых, преобразуясь в "скачущую" синхронно с током механическую силу г.Лоренца, "трясут" сами провода обмоток (это критично для двигателей, работающих неделями и месяцами), а передаваясь по валу в редуктор - циклически (пере) нагружают зубья шестеренок, снижая их ресурс, вызывая усталость металла. Отчего они и ломаются.
Как то так.

И да поправит меня мудрейший...

PS. В прошлой жизни меня учили, что "скважность — это отношение периода следования импульсов к длительности импульса" и она всегда больше или равна 1. А на рисунке указана не скважность, а "коэффициент заполнения".

Олег М.
Олег М. аватар
Offline
Зарегистрирован: 22.11.2015

Обратимся, уважаемые господа, к Википедии.

"Универсальный коллекторный электродвигатель (УКД) — разновидность коллекторной машины постоянного тока, которая может работать и на постоянном, и на переменном токе".
То есть, такие коллекторные движки все-таки ПРАВИЛЬНО называть "коллекторными машинами постоянного тока".
Или забить на "Вики".
 

diger67
Offline
Зарегистрирован: 25.07.2015

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

sten8606
Offline
Зарегистрирован: 28.08.2015

Олег М. пишет:

sten8606 пишет:

Вот осциллограмма хорошо показывающая подаваемое ШИМ напряжение и ток (скважность 30%):

Привет всем!

Добавлю своего лыка в ваши строки.
Диаграмму хоть и раскритиковали, тем не менее на ней хорошо видны броски тока при открывании ключей.
Чисто на глазок пики примерно вдвое выше среднего уровня.
А чем меньше скорость вращения мотора - тем больше будет отношение Iпик/Iсреднее.
Эти броски тока во первых, палят щетки и коллектор, во-вторых, хреново действуют на акк, могут перегружать и ваши ключи.
А во-вторых, преобразуясь в "скачущую" синхронно с током механическую силу г.Лоренца, "трясут" сами провода обмоток (это критично для двигателей, работающих неделями и месяцами), а передаваясь по валу в редуктор - циклически (пере) нагружают зубья шестеренок, снижая их ресурс, вызывая усталость металла. Отчего они и ломаются.
Как то так.

И да поправит меня мудрейший...

PS. В прошлой жизни меня учили, что "скважность — это отношение периода следования импульсов к длительности импульса" и она всегда больше или равна 1. А на рисунке указана не скважность, а "коэффициент заполнения".


Гугл криво переводит скважность-duty cycle, воть я и неподумав написал, главное все поняли) Кстати как на английском скважность?

Andy
Andy аватар
Offline
Зарегистрирован: 01.01.2016

diger67 пишет:
Ключевое слово, универсальный. Насколько я понимаю такие двигатели не имеют постоянных магнитов. Их роль выполняется двумя обмотками статора на которых с частотой питания меняется полярность. Одновременно с этим меняется палярность и на рабочей обмотке ротора. Как то так создается эффект бегущего поля. При подаче постоянного напряжения все работает идентично только без постоянной переполюсовки. Такие двигатели так и назвали универсальные.
"Специалист по двигателям" diger67 - назови конструктивное отличие этого универсального двигателя от коллекторного двигателя постоянного тока.

diger67 пишет:
Когда у подростков заканчиваются аргументы они переходят на личности.
Сливайся подросток.

SLOM
Offline
Зарегистрирован: 06.11.2014

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

 

енапомню это всеголиш дешовая детская машинка с дешовым колекторным движком :)

Олег М.
Олег М. аватар
Offline
Зарегистрирован: 22.11.2015

SLOM пишет:

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

 

енапомню это всеголиш дешовая детская машинка с дешовым колекторным движком :)

Это не грызня, уважаемый SLOM, а сравнительная фаллометрия!

Как то так.

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Ну и нафиг оно тут? Ещё было бы чем меряться, ато как там кино называлось, ась? "Тупой и ещё тупее" .. блин, забыл. :)

Олег М.
Олег М. аватар
Offline
Зарегистрирован: 22.11.2015

Arhat109-2 пишет:

Ну и нафиг оно тут? Ещё было бы чем меряться, ато как там кино называлось, ась? "Тупой и ещё тупее" .. блин, забыл. :)

Типа, в споре рождается истина!
Или погибает?
х.з.

SLOM
Offline
Зарегистрирован: 06.11.2014

давайте тогда вернемся к здравому смыслу. 

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

 

Олег М.
Олег М. аватар
Offline
Зарегистрирован: 22.11.2015

SLOM пишет:

давайте тогда вернемся к здравому смыслу. 

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

Вся проблем в том, кому что надо!

Год назад мой внучок гонял зимой примерно при -15С радиоуправляемую багги. Весьма резвую машинку.
Хотя я его предупредил, чтобы движение вперед/назад он делал плавно и с остановками, ему хотелось крутизны и дрифта.
Минут через пять машинка встала. Вскрытие показало обрыв цепи коллектора двигателя.
Если бы в машинке программно или технически было ограничение крутизны ;))) тока-она бы бегала до сей поры.
Нужен ресурс и надежность - нужно делать с учетом Ома, Лоренца, Кирхгофа и даже физики твердого тела с сопроматом.
Просто поиграться-и так сойдет.