Мотор от стиральной машины + arduino

Контроллеры, драйверы, датчики, управляющие устройства.
Аватара пользователя
Алексс
Почётный участник
Почётный участник
Сообщения: 2210
Зарегистрирован: 20 июл 2012, 15:49
Репутация: 266
Заслуга: IQ32
Настоящее имя: Алексей
Откуда: Прага
Контактная информация:

Re: Мотор от стиральной машины + arduino

Сообщение Алексс »

в чем идея: поиграться с пид регулированием.

считываем сигнал из таходатчика (переход через ноль) - это наши реальные обороты.
вешаем на прерывание ноль attachInterrupt(0, tachoChange, RISING);
это значение подаем в пид регулятор как Input = rpm;

далее в пид регулятор загружаем желаемое значение Setpoint = target;

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

принцип регулирования мощности - фазовый.
не прерывание 1 вешаем переход через ноль сети attachInterrupt(1, zeroCross, RISING);
как только произошел переход через ноль, стартуем таймер, который тем короче, чем большую мощьность нудно подать на мотор.
тоесть если нужно дать 100%, то таймер должен быть ноль, тиристор сразу открывается - целая полуволна сетевого напряжения пошла в мотор.
если нужно 50%, то нужно подождать 5мс, потом включить тиристор - тем самым половинка полуволны идет в мотор.
и тд.

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

как бы я делал сейчас:

пока пид не используем вообще. допилить код так, чтобы он мог плавно регулировать нагрузку с шагом в 1% (или грубее - по желанию) по показаниям потенциометра.
меняем

Код: Выделить всё

        
       outPID = Output;
        target = map(target, 0, 1023, 1, 200);
        Setpoint = target;
на

Код: Выделить всё

//        outPID = Output;
        target = map(target, 0, 1023, 1, 100);
        outPID = target;
тем самым пид исключается из управления.

причем мотор можно пока не насиловать - достаточно смотреть осцилографом как меняется момент включения симистора.

как только заработает "силовая" управляющая часть, проверить как считаются показания таходатчика и только потом подключать пид и настраивать его.
Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
switch
Новичок
Сообщения: 13
Зарегистрирован: 16 апр 2016, 11:35
Репутация: 1
Контактная информация:

Re: Мотор от стиральной машины + arduino

Сообщение switch »

Вот я пошел примерно по этому же пути ;)
Сейчас вместо мотора просто лампочка. В общем как что-то будет - сообщу, спасибо за помощь!
switch
Новичок
Сообщения: 13
Зарегистрирован: 16 апр 2016, 11:35
Репутация: 1
Контактная информация:

Re: Мотор от стиральной машины + arduino

Сообщение switch »

В общем выкинул все - оставил только фазовое управление. И тут проблема нарисовалась: тиристор выходной переключается резко. Т.е. либо четверть волны пропускает, либо всю.
Если по этой картинке то либо по заштрихованой части, либо по красной синусоиде.
Изображение
При этом сам сигнал на выходе с контроллера в норме.
Я его получаю следующим образом: замеряю с потенциометра уровень напряжения, привожу в диапазон 0..100, затем по прерыванию на переход нуля я включаю выход контроллера на симистор, жду нужное количество миллисекунд, выключаю.
Аватара пользователя
Алексс
Почётный участник
Почётный участник
Сообщения: 2210
Зарегистрирован: 20 июл 2012, 15:49
Репутация: 266
Заслуга: IQ32
Настоящее имя: Алексей
Откуда: Прага
Контактная информация:

Re: Мотор от стиральной машины + arduino

Сообщение Алексс »

а вот и не правильно :)

тир(сем)истор нужно включать в "середине" полуволны. выключится он сам в ноле.
Последний раз редактировалось Алексс 18 апр 2016, 23:22, всего редактировалось 1 раз.
Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
Аватара пользователя
Алексс
Почётный участник
Почётный участник
Сообщения: 2210
Зарегистрирован: 20 июл 2012, 15:49
Репутация: 266
Заслуга: IQ32
Настоящее имя: Алексей
Откуда: Прага
Контактная информация:

Re: Мотор от стиральной машины + arduino

Сообщение Алексс »

Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
switch
Новичок
Сообщения: 13
Зарегистрирован: 16 апр 2016, 11:35
Репутация: 1
Контактная информация:

Re: Мотор от стиральной машины + arduino

Сообщение switch »

Спасибо!
Получилось! Я так долго искал, а на википедии все было ;)
Продолжу завтра
switch
Новичок
Сообщения: 13
Зарегистрирован: 16 апр 2016, 11:35
Репутация: 1
Контактная информация:

Re: Мотор от стиральной машины + arduino

Сообщение switch »

Всем привет.
В общем справился с фазой, выставил прерывание на спад сигнала - все встало на свои места.
Однако обнаружилась напасть: тиристор при пересечении нуля иногда не закрывается! Следовательно подается полная мощность на двигатель и он дергается.
20160419_125659.jpg (7240 просмотров) <a class='original' href='./download/file.php?id=78052&mode=view' target=_blank>Загрузить оригинал (1.53 МБ)</a>
20160419_125802.jpg (7240 просмотров) <a class='original' href='./download/file.php?id=78053&mode=view' target=_blank>Загрузить оригинал (1.6 МБ)</a>
На графике желтый это напряжение на двигателе, синее это управляющий сигнал тиристора сразу после ардуины.
Полагаю оригинальный код Алекса дергал мотор по той же причине...
Импульсы управления очень короткие, их даже трудно различить на осциллограмме. Если подключаю лампочку то таких проблем нету...
Что смотреть?
Аватара пользователя
Алексс
Почётный участник
Почётный участник
Сообщения: 2210
Зарегистрирован: 20 июл 2012, 15:49
Репутация: 266
Заслуга: IQ32
Настоящее имя: Алексей
Откуда: Прага
Контактная информация:

Re: Мотор от стиральной машины + arduino

Сообщение Алексс »

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

полагаю проблема будет в недостаточно кривизне фронта от детектора фазы, отсюда не точное срабатывание прерывания/множественные срабатывания + мотор вносит шум.
если есть тригер шмидта, то хорошо бы его поставить на сигнал zero cross.
Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
switch
Новичок
Сообщения: 13
Зарегистрирован: 16 апр 2016, 11:35
Репутация: 1
Контактная информация:

Re: Мотор от стиральной машины + arduino

Сообщение switch »

Все просто решилось:
http://arduino.ru/forum/proekty/payalna ... ent-111285
Просто нужно ставить снабберные цепи
Аватара пользователя
Алексс
Почётный участник
Почётный участник
Сообщения: 2210
Зарегистрирован: 20 июл 2012, 15:49
Репутация: 266
Заслуга: IQ32
Настоящее имя: Алексей
Откуда: Прага
Контактная информация:

Re: Мотор от стиральной машины + arduino

Сообщение Алексс »

Реально помогло?
Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
switch
Новичок
Сообщения: 13
Зарегистрирован: 16 апр 2016, 11:35
Репутация: 1
Контактная информация:

Re: Мотор от стиральной машины + arduino

Сообщение switch »

Да, все стало ровно. Никаких скачков, помех и т.п.
Сейчас пытаюсь выяснить сколько импульсов наоборот дает таходатчик.
Аватара пользователя
Алексс
Почётный участник
Почётный участник
Сообщения: 2210
Зарегистрирован: 20 июл 2012, 15:49
Репутация: 266
Заслуга: IQ32
Настоящее имя: Алексей
Откуда: Прага
Контактная информация:

Re: Мотор от стиральной машины + arduino

Сообщение Алексс »

Ну как грица век живи, век учись.
Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
sany-sch
Новичок
Сообщения: 2
Зарегистрирован: 23 апр 2016, 13:37
Репутация: 0
Настоящее имя: Александр
Контактная информация:

Re: Мотор от стиральной машины + arduino

Сообщение sany-sch »

Здравствуйте, Алексей.
Меня зовут Шенрок Александр. У меня на Ютубе есть канал, и много роликов на нём посвящено именно плате на ТДА1085. Этим вопросом занимаюсь давно, сделал два работающих станка на данной плате и ещё две платы лежит в резерве. Но продолжаю интересоваться вопросом регулятора с обратной связью и тоже выбор пал на ардуино. Прочитал в комментах "зачем, если есть готовое решение" . Попробую ответить. Цепляем экран и видим обороты, температуру, потребляемый ток, в общем всё что угодно. При изготовлении сборка получается как бы модульной. Подключили потенциометр, залили соответствующий скетч - проверили. экран - проверили, отследили ноль - проверили., и т. д. В схеме ТДА с этим трудно. получаю массу писем и на канале и в блоге с возможными проблемами и неполадками. И ещё один довод: стиралки , ведь, перешли на мозги, отказались от ТДА...
В общем пытался и я. Но я совсем не ардуинщик, и это мой первый проект. Сначала хотел отказаться от симистора и использовать мосфет. "Кормить" движек постоянкой. Плюсы видились такие: 1. на постоянке движек мощнее и если ставить после моста хороший конденсатор, получаем реальную прибавку к мощности. 2. Упрощение схемы за счёт отсутствия индикатора нуля. 3. Упрощение программы за счёт использования встроенного ШИМа, а не отсчёта времени на каждый полупериод. Но столкнулся с проблемой. Не смог правильно выбрать мосфет, спалил 6 штук. На более слабом двигателе, 180 Ватт транзистор 10NK60 работает, а вот на двигателе от стиралки горит даже без нагрузки. В общем пока отказался. Спаял схему на симисторе. В качестве тахо использую датчик Холла. Но вот с пид регулировкой пока не соображу. Не могли бы вы подробней прокомментировать вашу программу, как для чайника, что куда подключаем, что для чего пишем. Если кому интересно, вот ссылка на похожую тему: http://arduino.ru/forum/obshchii/reguly ... ent-162569
Аватара пользователя
Алексс
Почётный участник
Почётный участник
Сообщения: 2210
Зарегистрирован: 20 июл 2012, 15:49
Репутация: 266
Заслуга: IQ32
Настоящее имя: Алексей
Откуда: Прага
Контактная информация:

Re: Мотор от стиральной машины + arduino

Сообщение Алексс »

Приветствую, Александр

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

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

ПС:
по поводу перехода на "мозги". Сильно сомневаюсь что это сделано изза надежности. Моторы на старых машинах с тда работают десятилетиями.
А новые модные и сложные мозги дохнут на раз и замена блока выльется в копеечку. Безусловно это шаг вперед - у самого машинка с инвертором. Но все за наш с вами счет.
Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
sany-sch
Новичок
Сообщения: 2
Зарегистрирован: 23 апр 2016, 13:37
Репутация: 0
Настоящее имя: Александр
Контактная информация:

Re: Мотор от стиральной машины + arduino

Сообщение sany-sch »

Конденсатор после мосфета это жестко.
Конденсатор ставил после диодного моста, перед мосфетом, для сглаживания пульсаций и повышения напряжения от переменного тока. Двигателю пульсации транзистора не страшны, тем более, что частоту ШИМа уменьшил, чтоб движок не "пищал".
Насчет сравнения цены -надёжности мосфет-симистор я с вами согласен. Но нужно учитывать то, что на постоянке движок выдаст лишние 50 Ватт (навскидку), мощности. А они могут оказаться совсем не лишними. Думаю, может попробовать поставить мост с конденсатором после симистора?..
по поводу перехода на "мозги". Сильно сомневаюсь что это сделано изза надежности.
Думаю, надёжность не при чём. Скорее для удобства. Чтоб "вшить" программы стирки и отжима. Имел ввиду, что управление микроконтроллером возможно на том же уровне, что и ТДА.
Мне интересно, на чём вы остановились, и каких результатов достигли. Осциллограммы мне не нужны, меня больше интересует практическая сторона. Держит обороты, не держит, где лучше, малые, высокие?
Thender
Опытный
Сообщения: 113
Зарегистрирован: 11 авг 2014, 16:03
Репутация: 25
Контактная информация:

Re: Мотор от стиральной машины + arduino

Сообщение Thender »

Подскажите какой транзистор можно использовать для преобразования сигналов таходатчика?
мне кажется можно взять полный аналог 3117 или же любой похожий типа 3102 или 315, или тут есть свои тонкости?
можно ли применить мосфет?
Oleg_D
Новичок
Сообщения: 1
Зарегистрирован: 20 янв 2019, 11:25
Репутация: 0
Настоящее имя: Олег
Контактная информация:

Re: Мотор от стиральной машины + arduino

Сообщение Oleg_D »

Алексс, если нетрудно опубликуйте итоговый код вашего проекта или скиньте в личку. Очень интересна данная тема на текущий момент.
Спасибо!
Ответить

Вернуться в «Электроника»