Усовершенствованный сервопривод Чена
А чем управляете? Какие программы могут управлять несколькими осями через LPT-порт с частотой 200кГц на каждую ось?
У меня не фрезерный станок, а принтер. Управление от своей схемы на AVR-ках. Для получения нужной скорости стоит несколько процессоров, каждый из которых занимается своей задачей. За движение отвечают две меги88.
Принтерный порт тут не причем.
Собственно не стал приставать со схемой, так как геки уже месяц работают без нареканий, и от добра добра не ищут.
С синхронным сервоприводом никто дела вообще не имел что ли? Или это уже из разряда ПРОФИ, а не ХОББИ?
А что значит несинхроммый сервопривод?
Я как-то считал что они все синхронные.
Ну типа двигатели постоянного тока - не есть синхронные
А на синхронном серводвигателе слабо сделать сервопривод?
У меня таких двигателей нет в наличии 😦 и следовательно нет цели (мотивации) для их запуска 😃.
Вот здесь www.gaw.ru/html.cgi/txt/app/motor/dc/index_3.htm можно почитать про управление бесколлекторными электродвигателями постоянного тока, думаю про эти двигатели идёт речь.
Вот этот www.cnczone.com/forums/showthread.php?t=74532 проект, насколько я понял, может работать с вентильными ЭД по Step/Dir, но через дополнительный усилитель мощности (ключи).
Здравствуйте.
Пользователь GuntisK рекомендовал мне ваш форум как раз по этой теме. Стал потихонько собирать схему приведенную в сообшений 161. Нашлась небольшая ошибка в софте - выхода Direction включаетса неправильно. Быстро исправил подпрограммы Direct_L и Direct_R и сейчас всё в порядке. Выход еще не собирал - это на завтра. 😉
Прям голова кругом:). На плату что дал чех - можно ставить мегу 8? или только 88? Или любую?
Vikings, а нельзя поделиться доработанным НЕХом? А то я мягко говоря в этом 😦…
…Стал потихонько собирать схему приведенную в сообшений 161. Нашлась небольшая ошибка в софте - выхода Direction включаетса неправильно. Быстро исправил подпрограммы Direct_L и Direct_R и сейчас всё в порядке. Выход еще не собирал - это на завтра. 😉
… В ней также исправлены несколько замеченных мною багов, которые на работу сервоконтроллера никак не влияли…
(из сообщения №198)
Да такая ошибка была, но для AtMega88 (прошивка в сообщение №198 и для AtMega48 в собщении №305 это было устранено). У меня эти выхода не использовались для основной работы. Я делал их только для индикации направления вращения и в расчёте, что кому-то они пригодиться для своих вариантов выходных драйверов или ещё каких то других целей. В приведённых мною схемах эта ошибка не влияет на работоспособность сервоконтроллера (в плане управления двигателем).
Прям голова кругом:). На плату что дал чех - можно ставить мегу 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.
arisov77, большое спасибо за оперативный овет. За чеха извиняюсь, когда пятый раз перечитываешь тему, мозги кипят:).
У меня ещё один вопрос: чем продиктовано применение драйверов 2184? Есть какие-то спецтребования? Просто у меня есть в наличии драйвера 2104 с аналогичной логикой работы. Они по выходному току слабее, и цоколёвкой отличаются. Бескровно явно не получится, вот и хотелось бы их применить:).
У меня ещё один вопрос: чем продиктовано применение драйверов 2184? Есть какие-то спецтребования? Просто у меня есть в наличии драйвера 2104 с аналогичной логикой работы. Они по выходному току слабее, и цоколёвкой отличаются. Бескровно явно не получится, вот и хотелось бы их применить:).
Я применил IR2184 с запасом, чтобы управлять IRFP260 (200В 49А, Ciss=5200pF). С полевиками IRF540 (100В 28А, Ciss=1700pF) драйвер IR2104, по моим «быстреньким» «прикидкам» должен надёжно работать. Если не ошибаюсь в оригинальном Gecko G320 установлены именно такие драйвера, по крайней мере, судя по моему анализу фотографий печ.плат, цоколёвка совпадает. Только, вот не знаю какие там MOSFET-ы установлены. Может, кто “заодно”, подскажет наименование вых. транзисторов и драйверов в Gecko G320, так для «общего развития».
Не сочтите за назойливость, управление МАХ током моста ведётся компаратором DA4 методом “зануления” входа драйвера. Почему не использовались входа SD(не знаю как инверсию отобразить:( )? Я понимаю что это возможно потребовало бы изменений в программе управления, и потому вопрос больше “для лучшего понимания” работы устройства.
В сообщении №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, проще говоря, это «выброс» напряжения «замыкался» через нижние полевики.
В каждом из этих способов есть свои плюсы и минусы.
В предыдущем своём сообщении я писал про установку кондера на выводы питания оптопары. Необходимо учитывать, что оптопары чувствительны к перегреву и их желательно устанавливать в панельки или паять быстро и держать тонким пинцетом запаиваемый вывод так, чтобы тепло «уходило в пинцет».
Воскресение прошло разбираясь с контроллером. Во первих - подключая и вращая енкодер на графике Servotuning появились скачки рассогласования. Когда я зашил более новую версию из сообшения 198 но оно не соединилось с компом. Смотря на терминале COM порта видно что начальное сообшение передают но не отвечают на передачу симболов. Не получилось по быстрому и разбиратса с программой. Взял я и прошл Mega8 с прошивкой из сообшения 106 и заработало. Больше разбиратса не стал, собрал выход из IRF640 и IR2113, подобрал параметры. Дальше смотреть буду уже в следующих выходных…
Vikings, прошивка из сообщения №198 подходит только для AtMega88. С AtMega8 - работать не будет.
Можете попробовать для AtMega8 прошивки Servo_AtMega_CompInt или Servo_AtMega_TimerInt из сообщения №161 (там написаны отличия).
Наверно непонятно сказал. На Mega8 я пробовал лишь старую программу, все новые - на Mega88.
Всем привет:). Плату буду переделывать под IR2104, и тут попутно возникли вопросы. В полевике внутри присутствует диод, включённый паралельно переходу исток-сток в прямом направлении. Как писалось в одном из постов, при срабатывании компаратора DA4, драйвер “глушится” по входу, и при этом транзистры VT2 - VT4 нижних плеч остаются открытыми. Напряжение самоиндукции, в зависимости от направления вращения, гасится по цепи сток-исток одного (нижнего и открытого) транзистора, и диод другого. Если эти диоды прорисовать на схеме, то этот путь хорошо виден. Происходит ЗАКОРАЧИВАНИЕ движка. Если отбросить нагрев силовых ключей, в большей степени внутренних диодов, то это динамическое торможение двигателя. Понятно, что это короткий процесс, до спада тока, но вслед за ним двигатель опять включается, и имеем бросок тока для компенсации “тормозов”. Вполне возможно что эти “тормоза” весьма полезны при подгонке двигателя в ноль, а вот при старте и разгоне, когда потребляется большой ток, явно нет. Хотя, конечно, я могу и ошибаться, надеюсь поправят:).
И есть вопрос по затворным цепям полевиков. Хотелось бы узнать почему применена подобная схема. Она кстати очень похожа на схему управления биполярным транзистором в импульсном БП компа. Вот тут qrx.narod.ru/book/at/2.6.htm . Но там диод и конденсатор применён для “быстрого рассасывания носителей неосновного заряда”. Там он заряжается до уровня падения напряжения на последовательно включённом диоде и резисторе, и при закрытии этот конденсатор создает на базе отрицательный заряд, ускоряя закрытие. В нашем случае , допустим драйвер DA2 открывает VT1. Заряд входной ёмкости происходит через резистор R35 сопротивлением аж(!) 200 Ом. Почему такой большой номинал? Закрытие полевика, а следовательно разряд входной ёмкости , идёт через последовательную цепочку R34,D9 и паралельно им включённый R35. Если бы управление полевиком осуществлялось от обмотки импульсного трансформатоора, тогда эта схема была бы оправдана. Да и даташиты на драйвера дают схему с токоограничительным резистором. Без “наворотов”, ведь задача - максимально быстро зарядить-разрядить входную ёмкость полевика. Еси управление происходит не часто, это один вопрос, а вот когда в работу включается компаратор DA4, тогда думаю и возникают проблеммы. Ведь это происходит при МАХ токе двигателя, и при этом включается ШИМ-регулировка тока.
Всё сказанное - имхо, прошу не принять за попытку “наезда”.
Насчет тока - там всё наоборот. Направление тока не меняетса и ток продолжает вращать мотор. Да, конечно, ток уменьшается из за падений на диоде, транзистора, активного сопротивления мотора. Если отключить все транзисторы тогда ток самоиндукций создаст обратное напряжение и мотор будет тормозится намного сильнее.
ЗЫ извиняюсь за свой русский. Иногда трудно выразится…
Dj_smart, я ни сколько не принимаю Ваши размышления и вопросы за наезд, хотя у меня и бывают иногда «выскакивают» резкие высказывания на некоторые вопросы. Есть такой «грешок» 😃
При одновременном открытии нижних транзисторов, на мой взгляд «внутренний» диод одного из полевиков не участвует в работе. Хотя ток получается, что и протекает в обратном направление И-С, но сопротивление канала открытого полевика будет очень малым и предполагаю, что основной ток «протечет» через него и небольшая часть через диод. Это только мои предположения.
По затворным цепям – на это, в своё время обратил внимание ещё AtLAB rcopen.com/forum/f110/topic40981/72 там же и мой ответ.
В других экспериментальных сервоконтроллерах я уже такую цепь не использовал. Просто использовал один затворный резистор 24Ом, без диода. Стабилитрон между З-И оставил, хотя в варианте платы Jozefpa они отсутствуют. Я считаю, что от них пользы больше, чем вреда (во время «экскрементов» 😃 не раз спасали драйвер).
Про динамическое торможение. Это торможение в плане позиционирования – основной задачи сервоконтроллера, оказывает на мой взгляд большую пользу, чем быстрый старт и разгон. Ведь если не будет торможения, будет происходить выбег, что недопустимо или крайне не желательно. Двигатель в паре сервоконтроллером всегда как бы немного приторможен. Даже в случае, когда нет перегрузки и компаратор не блокирует прохождение импульсов по входу, т.е. в нормальном режиме при движении в одну из сторон. Допустим, движение происходит в одну сторону: левая часть плеча полевиков не участвует в работе, верхний всегда закрыт, а нижний всегда отрыт, т.к. на входе IN соответствующего драйвера лог.«0». Другое плечо ШИМиться, периодически открывая/закрываю правую пару полевиков. Движение двигателя, т.е. напряжение на нём будет при открытом верхнем и закрытым нижнем. Но ведь при ШИМ импульс не постоянен и будет момент, когда верхний и нижний поменяются местами. И произойдёт тоже самое, что и при перегрузке – открытие двух нижних ключей. Такое происходит с прошивкой на основе оригинальной Ченовской smc2, т.е. всех тех, которые я здесь выкладывал. А с прошивкой smc3, в сервоконтроллерах UHU, Gecko320 (я уже не раз об этом писал) вообще происходит «переворачивание» полярности на двигателе и это на первый взгляд ещё хуже для двигателя, ведь теоретически двигатель не только «тормозиться», но и начнёт вращаться в другую сторону. Но всё это происходит очень быстро и ток в обмотках не успевает достигнуть критического.
Я уже писал, что схема с прерыванием тока по входу IN, на мой взгляд обеспечивает лучшее качество позиционирования, но недостаток – нет контроля тока при одновременном открытие нижних ключей.
Как вариант, можно сделать 2 токоизмерительных резистора, сигналы с них объединить (я подавал на входа двух компараторов, с объединенными выходами) и далее подать на входа компараторов с двумя разными порогами. С выхода компаратора с более низким порогом через диоды на входа IN, а с более высоким, через RS-“защёлку” на SD. Будет что-то подобие ШИМ контура стабилизации тока, с защитой от максимально допустимого через транзисторы и двигатель.
Честно - тему пречитал раз 5:(. А вопросы задаю которые уже разжёваны. Извиняйте. Ещё есть одна(надеюсь последняя) неясность. Назначение диода VD13. Если включить наоборот - своеобразная защита от обрыва токоизмерительных резисторов. +5 намертво заблокирует работу моста в такой ситуации. А в таком включении - непонятно. Я строил ШИМы для шаговиков на этом компараторе, прекрасно обходилось без него. Но это выяснится в процессе настройки, залезу с осцилом, поглядим:).
Ничего страшного, задавайте ещё вопросы.
По поводу VD13 – это и есть защита входа компаратора от возможного обрыва токоизмерительного резистора. В импульсных БП при пробое ключевого транзистора, обрыв резистора – не редкость. И здесь при пробое пары ключей одного плеча возможна такая ситуация.
У LM393, судя по DataSheet нет внутренних защитных диодов и при обрыве резистора и питании двигателя, например 110В, это напряжение окажется на входе компаратора, что приведёт к его “гибели”.
Немного не понял, про диод наоборот. Если он будет Катодом к входу к компаратору, а Анодом к +5В, то схема токоограничения работать не будет.
Диод поставил именно так из-за того, что у меня был установлен токоизмерительный резистор номиналом 0,5 Ом. И при токе 3А, на нём будет выделятся 1,5В, а диод, если его включить Анодом ко входу компаратора, а Катодом на “землю”, то он будет ограничивать это напряжение на уровне 0,6В. А так на входе, при обрыве резистора, ограничение будет на уровне 5,6В, что вполне допустимо для LM393.
Немного не понял, про диод наоборот. Если он будет Катодом к входу к компаратору, а Анодом к +5В, то схема токоограничения работать не будет.
Точно, не додумал:).