Автор: Konstantin_K Тема: Простой сервоконтроллер от Konstantin_K = DC 400v 700W  (Прочитано 30270 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Konstantin_K

  • Универсалы
  • Постоялец
  • *
  • Сообщений: 128
  • Карма: +8/-0

  • Активность
    0%
  • Возраст: 39
  • Место жительства: Харьков
Re: Простой сервоконтроллер от Konstantin_K = DC 400v 700W
« Прикреплённый пост : 30 Март 2013, 20:51:01 »
Всем  привет !!! :)    Вот наконец-то наступили долгожданные выходные, и появилось немного времени для проекта. Внес небольшие изменения в схему сервы: завел ServoError через транзисторный инвертор на SD, это будет отключать все силовые ключи во время ошибки, добавил кнопочку Reset, она очень помогает во время настройки параметров (не надо постоянно дергать БП чтобы перезагрузить контролер), остальные изменения связаны с разводкой платы.

Плату тоже доделал, к сожалению она получилась двухсторонняя, размеры 120х80мм.

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

В архиве измененная схема и плата.
===========================================================================
Самые нижние файлы последняя версия на ATMEGA88-20AU

В самом низу авторский переходник, для настройки плат.
===========================================================================
  • Начал делать
  • Механики

Оффлайн Konstantin_K

  • Универсалы
  • Постоялец
  • *
  • Сообщений: 128
  • Карма: +8/-0

  • Активность
    0%
  • Возраст: 39
  • Место жительства: Харьков
Спасибо за ссылочку, все очень просто описано, буду разбираться в PID-алгоритмах. :)

Сделал изолированный интерфейсный адаптер, попробую подобрать коэффициенты под свой движок. В архиве плата в формате Proteus 7.6 и BMP, + драйвеа для FT232RL,  схему не рисовал, все конденсаторы 0.1мкФ и один танталовый 10мкФ, дроссель 10мкГ, резисторы 100R, типоразмер всех малявок 1206. 
  • Начал делать
  • Механики

Оффлайн Konstantin_K

  • Универсалы
  • Постоялец
  • *
  • Сообщений: 128
  • Карма: +8/-0

  • Активность
    0%
  • Возраст: 39
  • Место жительства: Харьков
Всем  привет !!! :)    Вот наконец-то наступили долгожданные выходные, и появилось немного времени для проекта. Внес небольшие изменения в схему сервы: завел ServoError через транзисторный инвертор на SD, это будет отключать все силовые ключи во время ошибки, добавил кнопочку Reset, она очень помогает во время настройки параметров (не надо постоянно дергать БП чтобы перезагрузить контролер), остальные изменения связаны с разводкой платы.

Плату тоже доделал, к сожалению она получилась двухсторонняя, размеры 120х80мм.

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

В архиве измененная схема и плата.
===========================================================================
Самые нижние файлы последняя версия на ATMEGA88-20AU

В самом низу авторский переходник, для настройки плат.
===========================================================================
  • Начал делать
  • Механики

Оффлайн Konstantin_K

  • Универсалы
  • Постоялец
  • *
  • Сообщений: 128
  • Карма: +8/-0

  • Активность
    0%
  • Возраст: 39
  • Место жительства: Харьков
Re: Простой сервоконтроллер от Konstantin_K = DC 400v 700W
« Ответ #2 : 01 Апрель 2013, 02:15:59 »
Костя, упустили один момент. Дело не в двух датчиках, а в том, что при открытых нижних ключах движок замыкается не накоротко, а через суммарное сопротивление двух токовых резисторов, соответственно, ток будет ограничен.

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

Тем временем нарисовалась печатка. :)
  • Начал делать
  • Механики

Оффлайн Konstantin_K

  • Универсалы
  • Постоялец
  • *
  • Сообщений: 128
  • Карма: +8/-0

  • Активность
    0%
  • Возраст: 39
  • Место жительства: Харьков
Re: Простой сервоконтроллер от Konstantin_K = DC 400v 700W
« Ответ #3 : 02 Апрель 2013, 00:36:15 »
Я только с водичкой и катаю, только погружаю текстолит в емкость с водой а пленку клею в погруженном состоянии, чтобы пузырьков воздуха не было, а потом фотоваликом выгоняю воду и в ламинатор . Когда резист был свежий, клеился даже без воды и ламинатора, просто грел феном текстолит и лепил пленку, и все было ОК. :)

Для тех кто будет повторять мой вариант печатки, расскажу как я делал перемычки в переходных отверстиях: плата  посверлена и залужена, переходные отверстия должны быть диаметром 0.6мм, берем кусок провода из витой пары(провод цельномедный, медненный алюминий не пойдет) нарезаем кусочками по 2.5мм длинной, вставляем в переходные отверстия и разклепываем с двух сторон, потом немного облуживаем. Перемычки получаются очень низенькие(это важно если они располагаются под smd микрухами) и не вытягиваются из платы если их коснутся нагретым паяльником что экономит время и нервы. ;)
  • Начал делать
  • Механики

Оффлайн Konstantin_K

  • Универсалы
  • Постоялец
  • *
  • Сообщений: 128
  • Карма: +8/-0

  • Активность
    0%
  • Возраст: 39
  • Место жительства: Харьков
Re: Простой сервоконтроллер от Konstantin_K = DC 400v 700W
« Ответ #4 : 03 Апрель 2013, 23:18:01 »
Сборка контролера движется к завершению, запаял все что было в наличии, и залил прошивку, к сожалению нет силовых транзисторов (придется ждать выходных).
 При включении питания (только силовой части) выяснилось что ADUM1300 выдает на выходы лог-1, и резистор R18 не может ничего с этим поделать, что делает его ненужным, таким образом мы имеем открытые верхние ключи (при питании только силовой части).
Теперь думаю как настроить токовую, настройка макс тока проблем не вызывает (просто подбираем R14 и R15), а вот с подбором временных параметров все посложней, так как его нужно делать в динамике.

  • Начал делать
  • Механики

Оффлайн Konstantin_K

  • Универсалы
  • Постоялец
  • *
  • Сообщений: 128
  • Карма: +8/-0

  • Активность
    0%
  • Возраст: 39
  • Место жительства: Харьков
Re: Простой сервоконтроллер от Konstantin_K = DC 400v 700W
« Ответ #5 : 07 Апрель 2013, 01:26:42 »
Закончил сборку контролера, полноценные испытания пока не проводил (нет свободного времени), но от 12в все работает как задумано: датчик тока работает, по ошибке ServoError силовые ключи закрываются, осталось настроить максимальный ток  и буду тестировать с автотрансформатором.

Вот так выглядит контролер в сборе:

  • Начал делать
  • Механики

Оффлайн gktuning

  • Электронщики
  • Освоившийся
  • *
  • Сообщений: 81
  • Карма: +1/-0

  • Активность
    0%
  • Возраст: 58
  • Место жительства: г. Одесса
Re: Простой сервоконтроллер от Konstantin_K = DC 400v 700W
« Ответ #6 : 07 Апрель 2013, 05:46:03 »

Красота! Я так понимаю, с низу все это на пластину-радиатор посадили?
Успешных испытаний!
  • Начал делать
  • Электронщики

Оффлайн Konstantin_K

  • Универсалы
  • Постоялец
  • *
  • Сообщений: 128
  • Карма: +8/-0

  • Активность
    0%
  • Возраст: 39
  • Место жительства: Харьков
Re: Простой сервоконтроллер от Konstantin_K = DC 400v 700W
« Ответ #7 : 07 Апрель 2013, 21:35:17 »
Я так понимаю, с низу все это на пластину-радиатор посадили?

Да закрепил все на импровизированный радиатор, изготовленный из куска алюминиевой шины, его размеры 144х80х8мм.
Сама плата привинчена к радиатору через резьбовые стойки М3х8мм, пазы для возможности крепления к электоршкафу, или к станине станка.
Настроил максимальный ток на 3.5А номиналы резисторов такие: R14=100K R15=10K при этих номиналах минимальный ток равен  0.5А.

Во время настройки тока обнаружился эффект потери импульсов по цепи энкодера, проявлялся он таким образом: при включенном контролере в режиме позиция, я вручную прилагая некоторое усилие сдвигал вал с позиции (контролируя ток по амперметру), и почти всегда при отпускании рычага вал возвращался на нулевую метку, но время от времени(при небольшом усилии на рычаг) чувствовались небольшие провалы, и нулевая позиция сбивалась, при этом позиция в ServoTuning все время была 0.
Эффект наблюдался когда я (из за лени) подключил питание задающей части и драйверов от одного комповского БП (тем самым соединил землю силовой и задающей частей), сила была запитана от импульсника S-350-27.

После добавления еще одного БП для питания драйверов +15в, эффект потери импульсов больше не проявлялся.
Решил замерить разницу потенциалов между землей задающей и силовой частей, результаты шокирующие(смотрите фото), сразу становится понятно откуда берутся наводки.  :)
  • Начал делать
  • Механики

Оффлайн Konstantin_K

  • Универсалы
  • Постоялец
  • *
  • Сообщений: 128
  • Карма: +8/-0

  • Активность
    0%
  • Возраст: 39
  • Место жительства: Харьков
Re: Простой сервоконтроллер от Konstantin_K = DC 400v 700W
« Ответ #8 : 14 Апрель 2013, 16:05:09 »
Всем привет!!!  Вот и пришло время испытать контролер от автотрансформатора, сам трансформатор пока не мотал, для испытания использовал заводской транс ТПП 296-220-50, соединил последовательно часть первички, и несколько вторичных обмоток, таким образом получил 200в. постоянки  на выходе фильтра.

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

Следующая проблемка возникла с RC фильтром R27-C23 резистор накалялся как печка, при любом движении двигателя, особенно во время возбуда. Было решено удалить эту цепочку, так как она не в состоянии справится с выбросами моего движка при питании 200в. кстати в А300 и других подобных контролерах такой цепочки тоже нет, и все прекрасно работает.

В остальном силовая часть контролера отлично справилась с повышенной напругой, я даже рискнул и пару раз тормознув движок нулевым ШИМ-ом на полных оборотах, двигатель останавливается как вкопанный.
Ограничением запитки контролера от сети остались напруга силовых ключей, она должна быть минимум 400в а лучше 600в, и напруга фильтрующих кондеров С21 и С22 ее тоже надо увеличить до 400в.

на фото параметры для моего движка и испытательный полигон:  :)   
  • Начал делать
  • Механики

Оффлайн Konstantin_K

  • Универсалы
  • Постоялец
  • *
  • Сообщений: 128
  • Карма: +8/-0

  • Активность
    0%
  • Возраст: 39
  • Место жительства: Харьков
Re: Простой сервоконтроллер от Konstantin_K = DC 400v 700W
« Ответ #9 : 17 Апрель 2013, 02:58:10 »
Скорее проблемка не в макс скорости, а в реакции движка на ШИМ , чем больше разница в макс скорости движка (при ШИМ-е 100%) и требуемой от сервы, тем трудней будет подобрать параметры и успокоить двигатель.
Это из опыта настройки моего движка, до установки двигателя на станок, (энкодер был на валу двигателя) подобрать параметры при которых он не уходил в возбуд или проскакивал позицию, было очень не просто.
После установки двигателя на станок, энкодер был установлен на шпиндель с понижением 5 к 1-му, привод стал намного стабильнее, теперь я могу играться параметрами в широких пределах, и это не вызывает возбуда.
Пока удалось добиться стабильной работы в пределах от 0 до 1000 об/мин,  это с енкодером на 4000 позиций на оборот.
Параметры такие:
  • Начал делать
  • Механики

Оффлайн Konstantin_K

  • Универсалы
  • Постоялец
  • *
  • Сообщений: 128
  • Карма: +8/-0

  • Активность
    0%
  • Возраст: 39
  • Место жительства: Харьков
Re: Простой сервоконтроллер от Konstantin_K = DC 400v 700W
« Ответ #10 : 21 Апрель 2013, 01:45:48 »
Сегодня провел успешное испытание контролера с питанием от сети 220в. :)
В качестве фильтров были использованы электролиты  470uF х 400в два штуки в параллель, для ограничения зарядного тока применил термистор SCK 056, но он оказался слабым звеном, так как при нагруженном движке довольно сильно греется. Также заменил кондеры С21 и С22 на 400 вольтовые, полевики пока остались по схеме, но думаю их тоже прийдется заменить на более высоковольтные, например IRFP450  14А 500В.
В остальном контролер отлично справился с напряжением 300В, нагрев транзисторов минимальный, даже при нагруженном двигателе.
Запитать контролер от сети, решил по причине недостаточного крутящего момента на высоких оборотах, это происходило из за нехватки напряжения на выходе автотрансформатора. Зато теперь отпал вопрос по изготовлению БП. :D   
  • Начал делать
  • Механики

Оффлайн Konstantin_K

  • Универсалы
  • Постоялец
  • *
  • Сообщений: 128
  • Карма: +8/-0

  • Активность
    0%
  • Возраст: 39
  • Место жительства: Харьков
Re: Простой сервоконтроллер от Konstantin_K = DC 400v 700W
« Ответ #11 : 21 Апрель 2013, 12:52:26 »
Схему и печатку пока не переделывал, так как изменения незначительные: удален RC фильтр R27-C23, и заменены кондеры С21 и С22 , электролит С22 втиснулся на свое место на плате, С21 пришлось подпаять сверху.
Все остальное по схеме Servo_Izo Ver 1.1a , если в процессе экспериментов не обнаружится новых проблем, тогда подкорректирую и выложу окончательный вариант схемы и печатки, все что есть на данный момент находится в (ответе #353). ;)
  • Начал делать
  • Механики

Оффлайн Konstantin_K

  • Универсалы
  • Постоялец
  • *
  • Сообщений: 128
  • Карма: +8/-0

  • Активность
    0%
  • Возраст: 39
  • Место жительства: Харьков
Здравствуйте  P_M_Ch, в моем контролере «Servo_Izo Ver1.1a» стоит проц AtMega88-20AU, прошивка V4.7 для Mega88, фюзы как в txt файле который в папке с прошивкой. Версия 4.7 рабочая 100%, прошивал проц в среде AlgorithmBuilder, была одна проблемка с hex файлом, когда делал первый контролер на 8-й меге (посмотрите ответ # 244 ) но думаю это из за среды.

Контролер на L298 решил пока не собирать, по причине недостаточного для моих движков тока, движки от мощного шуруповерта, во время старта кушают больше 8А, думаю такого издевательства 298-я не выдержит.
  • Начал делать
  • Механики

Оффлайн P_M_Ch

  • Электронщики
  • Освоившийся
  • *
  • Сообщений: 81
  • Карма: +0/-0

  • Активность
    0%
  • Возраст: 57
  • Место жительства: РБ, г.Гродно
2 Константин_К. Вы пользовались программой "Servo Tuning" когда настраивали контроллер? Что-то у меня нет ответа МК. Программа при каждом обращении выдает:" Контроллер не найден.", хотя запрос от компа на МК приходит, но ответа самого МК нет.
  • Да
  • Ни к какой

Оффлайн Konstantin_K

  • Универсалы
  • Постоялец
  • *
  • Сообщений: 128
  • Карма: +8/-0

  • Активность
    0%
  • Возраст: 39
  • Место жительства: Харьков
Да подбирал параметры с помощью "Servo Tuning", через адаптер на основе FT232RL « Ответ #318 », порт COM 4. Прога не отличается стабильностью работы, но проблем с подключением не было, а вот в чем отличия Atmega88PA-AU от AtMega88-20AU пока не понял, возможно проблемка именно в этом.
  • Начал делать
  • Механики

 

Рейтинг@Mail.ru