Усовершенствованный сервопривод Чена

cd-print

Сижу и думаю. А какого собственно говоря изобретать велосипед.
Надо просто померить реальную скорость текущей версии контроллера.
для этого надо установить предел по ошибке ну например 32 (или 128/256) то есть не очень большую. С внешнего генератора подать частоту STEP. и через схемку с этого же генератора синхронно генерить эмуляцию сигналя A/B с энкодера. Увеличиваем частоту и в какой-то момент (когда проц уже не сможет успевать обрабатывать сигналы) он встанет по ошибке.
А дальше уже думать чо делать.
Попробую на выходных повозиться.

Вот еще мысль. Почемубы не скрестить ужа с ежом. То есть в одну схемку завести и экодер и Step/dir и процессор дергать только по двум прерываниям Увеличение/уменьшение дельта х.

cd-print

О. Победил Геко. Короче проблема была в том, что стоял высокое (для моего двигателя) значение GAIN/DAMP. Уменьшил примерно до 15-20% (по умолчанию стояло примерно 30%) и движок замолчал.

KoCNC

А на синхронном серводвигателе слабо сделать сервопривод?

arisov77
cd-print:

…Моя схема управляющая двигателем примерно стакой частотой и дает импульсы для управления двигателем на геку. То есть почти до 200 кГц. (скорость движка до 3000 об/минуту)…

А чем управляете? Какие программы могут управлять несколькими осями через LPT-порт с частотой 200кГц на каждую ось?

cd-print:

arisov77 Если я сделаю внешний счетчик, сможете подправить прошивкой smc2 так, что-бы она использовала внешний счетчик?

Подправить могу, но гарантировать работоспособность не смогу, потому что уже не раз убеждался – не имея под рукой «реального» устройства, «виртуально» очень трудно написать «правильную» программку. А Proteus-ом для визуализации отладки, я ещё не научился пользоваться, да и как то особо не доверяю результатам таких моделирований.

27 days later
cd-print
arisov77:

А чем управляете? Какие программы могут управлять несколькими осями через LPT-порт с частотой 200кГц на каждую ось?

У меня не фрезерный станок, а принтер. Управление от своей схемы на AVR-ках. Для получения нужной скорости стоит несколько процессоров, каждый из которых занимается своей задачей. За движение отвечают две меги88.
Принтерный порт тут не причем.

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

1 month later
KoCNC

С синхронным сервоприводом никто дела вообще не имел что ли? Или это уже из разряда ПРОФИ, а не ХОББИ?

cd-print

А что значит несинхроммый сервопривод?
Я как-то считал что они все синхронные.

KoCNC

Ну типа двигатели постоянного тока - не есть синхронные

arisov77
KoCNC:

А на синхронном серводвигателе слабо сделать сервопривод?

У меня таких двигателей нет в наличии 😦 и следовательно нет цели (мотивации) для их запуска 😃.
Вот здесь www.gaw.ru/html.cgi/txt/app/motor/dc/index_3.htm можно почитать про управление бесколлекторными электродвигателями постоянного тока, думаю про эти двигатели идёт речь.
Вот этот www.cnczone.com/forums/showthread.php?t=74532 проект, насколько я понял, может работать с вентильными ЭД по Step/Dir, но через дополнительный усилитель мощности (ключи).

Vikings

Здравствуйте.
Пользователь GuntisK рекомендовал мне ваш форум как раз по этой теме. Стал потихонько собирать схему приведенную в сообшений 161. Нашлась небольшая ошибка в софте - выхода Direction включаетса неправильно. Быстро исправил подпрограммы Direct_L и Direct_R и сейчас всё в порядке. Выход еще не собирал - это на завтра. 😉

Dj_smart

Прям голова кругом:). На плату что дал чех - можно ставить мегу 8? или только 88? Или любую?
Vikings, а нельзя поделиться доработанным НЕХом? А то я мягко говоря в этом 😦

arisov77
Vikings:

…Стал потихонько собирать схему приведенную в сообшений 161. Нашлась небольшая ошибка в софте - выхода Direction включаетса неправильно. Быстро исправил подпрограммы Direct_L и Direct_R и сейчас всё в порядке. Выход еще не собирал - это на завтра. 😉

arisov77:

… В ней также исправлены несколько замеченных мною багов, которые на работу сервоконтроллера никак не влияли…

(из сообщения №198)
Да такая ошибка была, но для AtMega88 (прошивка в сообщение №198 и для AtMega48 в собщении №305 это было устранено). У меня эти выхода не использовались для основной работы. Я делал их только для индикации направления вращения и в расчёте, что кому-то они пригодиться для своих вариантов выходных драйверов или ещё каких то других целей. В приведённых мною схемах эта ошибка не влияет на работоспособность сервоконтроллера (в плане управления двигателем).

Dj_smart:

Прям голова кругом:). На плату что дал чех - можно ставить мегу 8? или только 88? Или любую?
Vikings, а нельзя поделиться доработанным НЕХом? А то я мягко говоря в этом 😦

Микроконтроллеры AtMega8, 48, 88, 168 одинаковы по «ногам» и с соответствующей прошивкой (для AtMega168 – у меня нет) любой из этих МК может работать в схемах сервоконтроллеров, которые я выкладывал в этой ветке. Лучше всё-таки применять AtMega 48 или 88, т.к. с ними меньше вероятность «слёта» данных (коэффициенты ПИД) в EEPROM, чем с AtMega8.
Кстати, в плате словака (Jozefp - не чех), необходимо установить керамический конденсатор 0,1-0,22мкФ непосредственно на выводы питания (5 и 8) входной оптопары HCPL-2531 (2631). Один мой знакомый, который собирал сервоконтроллер с платой Josefp, писал, что без него происходили «глюки» при управлении двигателем в одну сторону вращения, при напряжении питания около 50В, а при 24В было всё нормально. При установке кондёра всё стало O’k.

Dj_smart

arisov77, большое спасибо за оперативный овет. За чеха извиняюсь, когда пятый раз перечитываешь тему, мозги кипят:).
У меня ещё один вопрос: чем продиктовано применение драйверов 2184? Есть какие-то спецтребования? Просто у меня есть в наличии драйвера 2104 с аналогичной логикой работы. Они по выходному току слабее, и цоколёвкой отличаются. Бескровно явно не получится, вот и хотелось бы их применить:).

arisov77
Dj_smart:

У меня ещё один вопрос: чем продиктовано применение драйверов 2184? Есть какие-то спецтребования? Просто у меня есть в наличии драйвера 2104 с аналогичной логикой работы. Они по выходному току слабее, и цоколёвкой отличаются. Бескровно явно не получится, вот и хотелось бы их применить:).

Я применил IR2184 с запасом, чтобы управлять IRFP260 (200В 49А, Ciss=5200pF). С полевиками IRF540 (100В 28А, Ciss=1700pF) драйвер IR2104, по моим «быстреньким» «прикидкам» должен надёжно работать. Если не ошибаюсь в оригинальном Gecko G320 установлены именно такие драйвера, по крайней мере, судя по моему анализу фотографий печ.плат, цоколёвка совпадает. Только, вот не знаю какие там MOSFET-ы установлены. Может, кто “заодно”, подскажет наименование вых. транзисторов и драйверов в Gecko G320, так для «общего развития».

Dj_smart

Не сочтите за назойливость, управление МАХ током моста ведётся компаратором DA4 методом “зануления” входа драйвера. Почему не использовались входа SD(не знаю как инверсию отобразить:( )? Я понимаю что это возможно потребовало бы изменений в программе управления, и потому вопрос больше “для лучшего понимания” работы устройства.

arisov77

В сообщении №64 rcopen.com/forum/f110/topic40981/64 я писал почему так сделал.
Также про это писал в середине сообщения №198 rcopen.com/forum/f110/topic40981/211 . Есть кое-что здесь electronix.ru/forum/index.php?showtopic=58750 . И вот здесь rcopen.com/forum/f110/topic40981/307 (сообщение №294) можно почитать.
При управление по SD надо будет устанавливать дополнительную RS-«защёлку» (можно посмотреть схему UHU). При практических экспериментах я выяснил, что в этом случае помехоустойчивость сервоконтроллера во время перегрузки (например, во время реверса) ниже и надо тщательнее «прорабатывать» топологию печатной платы и ставить несколько керамических конденсаторов по питанию силовой части двигателя и RC-цепочки на цепи двигателя. Иначе, было такое, что во время перегрузки было значительно больше ЭМ помех и сервоконтроллер (МК) «переходил» в режим ServoError. А при управлении по IN, проще говоря, это «выброс» напряжения «замыкался» через нижние полевики.
В каждом из этих способов есть свои плюсы и минусы.

В предыдущем своём сообщении я писал про установку кондера на выводы питания оптопары. Необходимо учитывать, что оптопары чувствительны к перегреву и их желательно устанавливать в панельки или паять быстро и держать тонким пинцетом запаиваемый вывод так, чтобы тепло «уходило в пинцет».

Vikings

Воскресение прошло разбираясь с контроллером. Во первих - подключая и вращая енкодер на графике Servotuning появились скачки рассогласования. Когда я зашил более новую версию из сообшения 198 но оно не соединилось с компом. Смотря на терминале COM порта видно что начальное сообшение передают но не отвечают на передачу симболов. Не получилось по быстрому и разбиратса с программой. Взял я и прошл Mega8 с прошивкой из сообшения 106 и заработало. Больше разбиратса не стал, собрал выход из IRF640 и IR2113, подобрал параметры. Дальше смотреть буду уже в следующих выходных…

arisov77

Vikings, прошивка из сообщения №198 подходит только для AtMega88. С AtMega8 - работать не будет.
Можете попробовать для AtMega8 прошивки Servo_AtMega_CompInt или Servo_AtMega_TimerInt из сообщения №161 (там написаны отличия).

Vikings

Наверно непонятно сказал. На Mega8 я пробовал лишь старую программу, все новые - на Mega88.

Dj_smart

Всем привет:). Плату буду переделывать под IR2104, и тут попутно возникли вопросы. В полевике внутри присутствует диод, включённый паралельно переходу исток-сток в прямом направлении. Как писалось в одном из постов, при срабатывании компаратора DA4, драйвер “глушится” по входу, и при этом транзистры VT2 - VT4 нижних плеч остаются открытыми. Напряжение самоиндукции, в зависимости от направления вращения, гасится по цепи сток-исток одного (нижнего и открытого) транзистора, и диод другого. Если эти диоды прорисовать на схеме, то этот путь хорошо виден. Происходит ЗАКОРАЧИВАНИЕ движка. Если отбросить нагрев силовых ключей, в большей степени внутренних диодов, то это динамическое торможение двигателя. Понятно, что это короткий процесс, до спада тока, но вслед за ним двигатель опять включается, и имеем бросок тока для компенсации “тормозов”. Вполне возможно что эти “тормоза” весьма полезны при подгонке двигателя в ноль, а вот при старте и разгоне, когда потребляется большой ток, явно нет. Хотя, конечно, я могу и ошибаться, надеюсь поправят:).
И есть вопрос по затворным цепям полевиков. Хотелось бы узнать почему применена подобная схема. Она кстати очень похожа на схему управления биполярным транзистором в импульсном БП компа. Вот тут qrx.narod.ru/book/at/2.6.htm . Но там диод и конденсатор применён для “быстрого рассасывания носителей неосновного заряда”. Там он заряжается до уровня падения напряжения на последовательно включённом диоде и резисторе, и при закрытии этот конденсатор создает на базе отрицательный заряд, ускоряя закрытие. В нашем случае , допустим драйвер DA2 открывает VT1. Заряд входной ёмкости происходит через резистор R35 сопротивлением аж(!) 200 Ом. Почему такой большой номинал? Закрытие полевика, а следовательно разряд входной ёмкости , идёт через последовательную цепочку R34,D9 и паралельно им включённый R35. Если бы управление полевиком осуществлялось от обмотки импульсного трансформатоора, тогда эта схема была бы оправдана. Да и даташиты на драйвера дают схему с токоограничительным резистором. Без “наворотов”, ведь задача - максимально быстро зарядить-разрядить входную ёмкость полевика. Еси управление происходит не часто, это один вопрос, а вот когда в работу включается компаратор DA4, тогда думаю и возникают проблеммы. Ведь это происходит при МАХ токе двигателя, и при этом включается ШИМ-регулировка тока.
Всё сказанное - имхо, прошу не принять за попытку “наезда”.

Vikings

Насчет тока - там всё наоборот. Направление тока не меняетса и ток продолжает вращать мотор. Да, конечно, ток уменьшается из за падений на диоде, транзистора, активного сопротивления мотора. Если отключить все транзисторы тогда ток самоиндукций создаст обратное напряжение и мотор будет тормозится намного сильнее.
ЗЫ извиняюсь за свой русский. Иногда трудно выразится…