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

arisov77

Для варианта 220В/10А транзистор, на мой взгляд, лучше применить более популярный IRF460 www.platan.ru/…/id=334696493&group=204&src=pltn , т.к. напряжение С-И у него выше, чем у IRF360, ток чуть-чуть поменьше и по в цене он выигрывает. Также можно применить популярный среди любителей импульсных сварочников, как они его называют - «народный полтинник» - IRG4PC50 www.platan.ru/cgi-bin/…/id=589098788&group=201 .
Для таких высоких напряжений и тока надо очень тщательно прорабатывать топологию печатной плату, очень желательно сделать гальваническую развязку МК от силовой части.
Также не помешало бы изменить схему защиту (контроля тока) – про это на форуме я где-то писал.
Готового варианта конструкции сервоконтроллера для повторения, для Вашего применения, я ещё не видел.
Для 10А можно оставить и резистор, у UHU для 14А использовано 2 запараллеленных резистора 0,1 Ом х 5Вт.

По поводу схем, прошивок…
Я меня 2 сервоконтроллера около года работают по этой схеме rcopen.com/forum/f110/topic40981/174 (нет только деталей в цепях концевиков Limit_L & Limit_R, но они были проверенны навесным монтажом – всё o’k).
Прошивку использовал Servo_AtMega88_CompInt_Modif.zip из сообщения rcopen.com/forum/f110/topic40981/211 .
Другие конструкции есть на www.cnczone.com/forums/showthread.php?t=69640 (+см. сообщение №349).
Также, на сколько мне известно, что работает конструктив (на фото) jozefp-а rcopen.com/files/49a485ec9970730077f50f84 с доработкой rcopen.com/forum/f110/topic40981/331 (внизу сообщения). Прошивки для этого конструктива c AtMega48 были проверенны из сообщения rcopen.com/forum/f110/topic40981/318 .

ATLab
Raptirius:

Альтернативная разработка 

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

dashko

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

ATLab
arisov77:

… и вот здесь banebots.com/pc/ELECTRONICS/EN-A0001-KT на 1, 4, 8 и 16.

Или я ничего не понимаю, или схема совсем левая:

  1. это не делитель с сохранением квадратур, а формирователь сигнала “направление”
  2. эта схема, как она нарисована, вообще не работает как делитель: сигнал направления формируется напрямую из входного квадратурного сигнала, а счетчик делитель и мультиплексор в стороне. Чтобы на халяву не повторяли, а покупали набор?
dashko

Да, верно. А мне нужен просто делитель на 2 (не на 4 8 16) с сохранением квадратуры. Диск на 500 линий не позволяет достичь нужной скорости.

И еще вопрос. Кто использовал оптопары от принтера HP? У меня они работают только со своей лентой. На другие диски или предметы в зазоре не реагируют вообще.

ATLab
dashko:

…А мне нужен просто делитель на 2 (не на 4 8 16) с сохранением квадратуры…

Если пойти по первой ссылке, а там почитать и пойти по следующей, то можно попасть на emergent.unpy.net/projects/01149271333
а там есть ссылка на программу расчета таблицы перекодирования на Python-е, а уж в ней в конфигурации можно задать коэффициент деления:

…# N is the divisor. It could be 1, 2, 4, 8, or 16.

Разобраться во всем этом при желании наверное можно. 😁

P.S. Интерпретатор Python вроде бесплатный.

dashko

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

1 month later
МаркАнтоний

Здравствуйте. Попросили меня залить прошивку из 198 сообщения этой ветки в Мегу 88. Я пользуюсь програмой AlgorithmBuilder. В ней можно присоединить hex файл и прошить кристал. Но перед тем как приступать к прошивки это программа выполняет какую то проверку и говорит что ошибка в hex файле в строке 1. Просил другово человека перекомпилировать исходник в асемблере он сказал что асемблер говорит что не хватает какой то библиотеке. Так вот у меня есть просьба, может кто нибудь поделится hex файлом на который моя программа не стала бы ругаться? Я буду Вам безумно благодарен!
Заранее спасибо!

10 days later
arisov77

МаркАнтоний, так как Вы меня ещё и в личке спросили об этом, отвечу здесь: я – понятию не имею, как с помощью AlgorithmBuilder «прошить» МК. «Прицепить» hex-файл туда у меня не получилось (в help-е ни слова про это, нашёл только экспорт) и разбираться в этом «глубже» у меня нет никакого желания и времени.
Воспользуйтесь другим программатором rcopen.com/forum/f110/topic40981/296 .

Zliva

В AlgorithmBuilder нет возможности прошивать микроконтроллеры hex-файлом, который скомпилирован другими программами. Для этого нужно построить свой алгоритм и залить его.

МаркАнтоний

Позвольте с Вами не согласиться: в программе AlgorithmBuilder имеется такой оператор как "Load: … .hex " и всё должно работать. Об этом говорил и сам автор данной среды.

Но всё равно большое спасибо всем откликнувшимся!

Zliva

А у Вас какая версия AlgorithmBuilder?

1 month later
vasja

Здравствуйте. Здесь уже больше месяца никого не было, есть здесь кто живой.
Собрал на макете привод с мегой48 на 20мгц. энкодер с принтера на 1000 штрихов. В проге ServoTuning он настраивается, но избавится от дрожания вала не получается. Вопрос первый - возможно ли настроить так, чтобы в состоянии равновесия двигатель стоял, или это невозможно в принципе. Я так понимаю, что двигатель обязан при такой схеме все время немного дрожать. А дрожит он ± 100 штрихов!!! и меньше не получается.
Второй вопрос - может ли кто дать подробную блок схему программы в привязке к тексту прграммы, хочу сделать автоматическую оптимизацию параметров регулирования.
Вопрос третий - команды управления такие же как в Чена?
Вопрос четвертый - для меня смысл сервоуправления в отслеживании координаты резца и измерительная линейка должна стоять на направляющей. а когда стоит на двигателе то все люфты и погрешности остаются. но если двигатель обязан дрожать, то дрожать он будет на размер люфта, и разобьет всю механику!!!
Если это так, то придется лепить свою схему и программу, что конечно жаль.

arisov77
  1. Дрожать при правильной настройке не должен. Но оригинальный Ченовский алгоритм позиционирования (который и был использован без изменений в данном усовершенствованном) видимо не совсем хорошо работает. Поэтому в сервоконтроллере UHU www.uhu-servo.de/servo_en/index.htm (основан на алгоритме Чена) его автор ввёл дополнительные настроечные коэффициенты (например, «B - Higher derivative constant») и изменил влияние интегрального коэффициента uhu-servo.de/…/UHU_Servo_Controller_300_en.pdf .
  2. Блок схема вряд ли у кого есть, наверное только у мистера Чена. elm-chan.org/works/smc/report_e.html
  3. Нет.
  4. То что датчик положения (энкодер, линейка и т.п.) должен быть связан с двигателем без люфтов, в этой ветке уже бурно обсуждалось.
vasja:

…Если это так, то придется лепить свою схему и программу, что конечно жаль.

Ну почему же жаль. Если Вы что сделаете своё и поделитесь с этим со всеми – будет очень даже хорошо 😃😃.

vasja

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

georgnsk

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

arisov77
vasja:

А где взять команды управления от Вашей схемы, чтобы привязать к своей программе миллинга? Или с какой программой она работает?

Некоторые команды есть в исходнике в п/программе «In_Message:»
Команды можно «стянуть» какой нибудь программой для «прослушки» СОМ порта. У меня получилось этой - Advanced Serial Port Monitor www.aggsoft.ru/serial-port-monitor.htm. Эмулировать сервоконтроллер можно COM Port Data Emulator www.aggsoft.ru/serial-port-monitor.htm (пока ещё не пробовал).

Вы хотите управлять (задавать пошагово) по СОМ порту? Если так, то учитывайте то, что по Step/Dir импульсы задания положения «приходят» последовательно (постепенно), т.е. шаг за шагом. А по СОМ порту сразу поступает (задаётся) необходимое количество шагов и могут быть проблемы с защитой от большого рассогласования. Также необходимо учитывать, что профиль разгона-торможения нужно будет задавать в Вашей управляющей программе и выдавать это постепенно или использовать оригинальную Ченовскую прошивку elm-chan.org/works/smc/report_e.html , где у него есть команды «G - Generate a motion» (для непосредственного задания в G0/G1) и коэффициент разгона-торможения «Parameter #7: Accereration for G0 command». (см. Figire 9. Motion profile by G command)

vasja

Получается что надо ставить тахогенератор, но сигнал с него куда-то в программу вставлять. Раобраться с чужим ассемблером сложнее, чем свою программу писать.
хотелось бы воспользоваться тем что здесь уже разработано, ну и потом свою доработку выложу. команды надо передавать через СОМ на 3 и более координат. Передавать хочу координаты в память дополнительного контроллера .реальные рабочие координаты инструмента должны идти обратно в компьютер и рисовать пройденную траекторию поверх исходной. Я пишу для мк на си, программа получается больше чем асемблером, но писать намного легче. Через сверление печатных плат я уже прошел, хочется сделать что-то посерьезнее.