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

ZanozM

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

По поводу аналогового шима - а как цифорвой шим будет ограничивать ток в обмотках?
В случае аналогового - получается - нагрузка возрасла ток добавился - движок координату держит, а в цифровом - нагрузка возросла(на чуть-чуть) ток надо поднять на 0.1младшего бита ц.шима и че он будет делать - а ничего - он просто сдвинется от нагрузки и будет уже там висеть или начнет болтаться между указанной точкой и следующей…

Чего то я в этих ШИМах запутался, сегодня в книге прочитал термин КОД-ШИМ , там же описан принцип устройства последнего.
Дак вот аналоговый ШИМ, в класической форме я представлял как компаратор, в который на одну ножку приходит сигнал подлежащий модуляции, а на другую пила, и внем тоже обратной связи по току нет.
А вы говорите о ШИМ в котором заведена обратная связь.
Опишите его подробней.
Вот в Шаговых приводах изпользуется ШИМ при котором частота является стробирующей, то есть разрешает включить тригер, а выход с компаратора обнуляет тригер, как назвать такой ШИМ?
В контроллере Чена нет контроля тока, то есть нет резистора на котором измеряет компаратор падение напряжения.
В контроллере UHU, контроль тока есть,Вопрос для чего он там стоит? Если он влияет на ШИМ то каким образом?

AZi

ШИМ представляет из себя вот че:
стоит компаратор на один вход коотрого подается пила, а на другой напряжение обратной связи(по напряжению, по току, еще по чему - не важно) и когда напр обратной связи сравняется а затем станет больше того что на пилообразном сигнале в данный момент - уровень на выходе сменится…

В см600 и прочих девайсах работающих с линейными движками стоит такая схема:
компаратор, на один вход которого подается напряжение пропорциональное току в обмотке, а на другой - обратная связь по току, затем стоит триггер на вход которого идет напряжение с выхода компаратора а на вход сброса/загрузки - тактовый сигнал частотой 2кгц(в СМках) или другая, этой частотой достигается то что схеме не заведется на высших гармониках и не войдет в линейный режим, тоесть задали допустим 1А - ключ открылся, ток растет… бац - привысил 1А, компаратор выдает единичку, а тригер тем временем ждет тактового импульса, как импульс пришел - он переключает ключи в другую сторону и ток идет уже из обмотки обратно в питание, как станет ниже заданного - компаратор опять сменит уровень а триггер дождавшись тактового импульса переключит ключи…
тоесть ток в обмотке будет то возрастать то убывать с чатотой 2кгц, и действующее значение будет равно заданному…

ZanozM

ШИМ представляет из себя вот че:
стоит компаратор на один вход коотрого подается пила, а на другой напряжение обратной связи(по напряжению, по току, еще по чему - не важно) и когда напр обратной связи сравняется а затем станет больше того что на пилообразном сигнале в данный момент - уровень на выходе сменится…

Так а где в этом девайсе задающий сигнал( пропорциональный току в обмотке)?

В см600 и прочих девайсах работающих с линейными движками стоит такая схема:
компаратор, на один вход которого подается напряжение пропорциональное току в обмотке, а на другой - обратная связь по току, затем стоит триггер на вход которого идет напряжение с выхода компаратора а на вход сброса/загрузки - тактовый сигнал частотой 2кгц(в СМках) или другая, этой частотой достигается то что схеме не заведется на высших гармониках и не войдет в линейный режим, тоесть задали допустим 1А - ключ открылся, ток растет… бац - привысил 1А, компаратор выдает единичку, а тригер тем временем ждет тактового импульса, как импульс пришел - он переключает ключи в другую сторону и ток идет уже из обмотки обратно в питание, как станет ниже заданного - компаратор опять сменит уровень а триггер дождавшись тактового импульса переключит ключи…

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

AZi

ШИМ представляет из себя вот че:
стоит компаратор на один вход коотрого подается пила, а на другой напряжение обратной связи(по напряжению, по току, еще по чему - не важно) и когда напр обратной связи сравняется а затем станет больше того что на пилообразном сигнале в данный момент - уровень на выходе сменится…

Я тут малость не все написал, там еще между обратной связью и компаратором стоит операционник который сравнивает опорное напряжение и напр обратной связи…

глянь вот здесь - там по структурной схеме все впринципе понятно…
focus.ti.com/lit/ds/symlink/tl494.pdf
вообще гдето в инете более удачный даташит был, поищи если интересно…

3 months later
celladon

Собрал контроллер для серводвигателей на Меге8 и L298 для двигателей с током до 4А. Если кого интересует выложу схему и печатку. Но у меня возникла проблема. Послое программирования Меги контроллер работает нормально. Через какое-то время перестает работать. Почему-то меняется содержимое EEPROM. Возможно я не правильно установил биты конфигурации. Подскажите как надо.
Это происходит даже если не настраивать при помощи прогрммы СервоТюнинг. Кстати есть исходники к ней у кого-нибудь?

mura

Через какое-то время перестает работать. Почему-то меняется содержимое EEPROM. Возможно я не правильно установил биты конфигурации. Подскажите как надо.

такое обычно бывает когда используют 0-ю ячейку или не включают браунаут.

AZi

Да выложи схему, печатку и прошивку если не жалко… 😃

celladon

Прошивка та, что в начале форума. Были исходники.

1 month later
technik

Собрал контроллер по схеме от celladon.Только dir не на 4, а на 26 pin.Он вроде работает, но двигатель не вращается.С программой servotuning он
обменивается данными,даже когда вращаешь вал двигателя , на компе показывает рассогласование и mega даже пытается
корректировать позицию.Это видно по графику,т.е. вслед за зелёной линией прыгает и красная.Но в это время на выводах 15 и 16 отсутствует напряжение.
Когда программу переводишь в режим ШИМ , то при перетаскивании ползунка на вывыодах 15 и 16, ШИМ есть и меняется.
Но двигатель в это время всё равно не вращается.Двигатель и энкодер из старого принтера. L298 вроде исправная.
Объясните логику работы ШИМ1 , ШИМ2, HI1, HI2. А зачем ещё FORCE1 и FORCE2?

Anton_M

посмотрите в симуляторах - VMLAB.nm.ru или в PROTEUS123.narod.ru/01.htm

будет ясно что происходит.

technik

Вот накатал проектик в Протеусе.Что-то непонятно оно работает.Может кто разберётся.
После запуска симуляции надо подождать несколько секунд , а то сразу ничего не происходит.
В приложении zip архив.

Servo_M8_L298.zip

technik

Так что, у кого нибудь работает этот контроллер или нет?
А мою схемку в протеусе кто-нибудь проверял, у вас работает?

А курс по протеусу я уже читал — ничего нового.

maxvovk
technik:

Так что, у кого нибудь работает этот контроллер или нет?
А мою схемку в протеусе кто-нибудь проверял, у вас работает?

А разве вот такие конструкции работают?

do_get_hardparam:
ldi zl, low(hardparam)
ldi zh, high(hardparam)
ldi r16, 5 ; всего 4+1 параметров по 1 байту
dghpc: ld uart_r, Z+

Мне всегда казалось, что LD по Z невозможно и реализовано в LPM…

technik

Ну тогда еслт исхлдник с таким кодом не работает , тогда просьба к celladon выложить тот который работал у него.

celladon

Я использовал прошивку без прерываний. Только я бы не сказал что она хорошо работала. Но покрайне мере двигатель вращался. Что бы нормально заработало приходилось нескольео раз включать выключать. Но даже когда двигатель не включается обмен с компьютером есть. Проверял СОМ монитором. Непонятно что за синяя линия на графике. Раньше была только красная и зеленая. А вчера вот появилась. А как успехи у других? Двигатель вращается? Какие биты устанавливали при прошивке? Я бы задал несколько вопросов к разработчику прошивки и программы. Как сним связаться я не знаю.

technik

А у меня не хочет вращаться ни с той ни с другой прошивкой,хотя обмен по RS232 есть.
2 celladon. А почему у вас на вашей схеме вход dir идёт на 4 вывод , а у Художника на 26?

Саму атмегу прошивал программатором встроенным в CodeVision, пробовал и тем который в BascomAVR.
Тут кто-то писал про включение браунаут, я и с ним и без него пробовал,менял bodlevel,результат один— двигатель не вращается.
Менял местами выходы с энкодера, ничего не помогает.Самое интересное , что в режиме ШИМ при передвигании ползунка, на меге он есть и меняется,
следовательно двигатель должен вращаться или в одну или в другую сторону.Был глюк ,когда плохо прошилась мега,то двигатель вращался,и через каждые 2-3
секунды останавливался.Что-то мне думается, что выводы 25 и 13 меги надо пустить на входы enable L298, а шим на inputsы.

9 months later
BlrUsr
Художник:

Уважаемые хоббисты, хочу поделиться разработкой. Это сервоконтроллер на AVR, с удобной программой настройки. За основу брал прошивку Чена - elm-chan.org Его проект открытый, я тоже публикую свои изыскания. Использовал этот контроллер в одном из гравировальных станков ЧПУ для экспериментов. Силовые ключи штатные.

Для улучшения характеристик применил более скоростной микроконтроллер АТmega8, поднял частоту ШИМ до 25КГц. Для удобства настройки и снятия характеристик была разработана программа под Windows, работа с контроллером по RS-232.

F2 - Предыдущий серво-режим (во время измерений недоступно)
F3 - Следующий серво-режим (во время измерений недоступно)
F8 - СТАРТ (переместиться в заданное относительное положение)
F9 - ИЗМЕРЕНИЕ
F11 - СТОП
F12 - СБРОС (всех координат в 0 + стоп)

Лево - Управление - уменьшить
Право - Управление – увеличить
Вверх – «0» стоп
Ctrl + Лево - Управление крайнее левое положение
Ctrl + Право - Управление крайнее правое положение

При нажатии Ctrl, после отпускания лево/право, выставляется значение, которое было до
удержания Ctrl. Если это значение было из противоположного направления, устанавливается
значение 0, чтобы лишний раз резко не изменять направление на противоположное и не ломать
ключи с приводом.

Клик правой кнопкой мыши на график - выпадающее меню “Сохранить график”, можно сохранять в BMP и векторный WMF.

В банки данных заносятся коэффициенты PID. По умолчанию используется нулевой.
Значения полей “Имп/мм”, “История измерений”, “Период измерений” сохраняются после выхода в INI файл, который будет находиться в той-же папке, откуда была запущена программа.

Это проверенная схема и прошивка. Можно ли на ней работать? Для хобби возможно подойдёт, но скорости без отклонений от координат довольно низкие. При рабочем перемещении на скорости 2 м/мин ловил при плохом разгоне отклонение на диагонали до 0,2 мм. Импульсов энкодера – 200 имп/мм. На свободном перемещении при скорости 2 м/мин идёт очень неплохо, в случае отклонения, вгоняет машину в координату, машина всегда выходит в “ноль“. Пользуйтесь.

В приложенных файлах схема, трассировка, сборочный чертёж, прошивка, программа ServoTuning для настройки контроллера. Трассировка не очень удачная, по быстрому сделана, но всё функционирует. Просто обратите внимание при подключении, чтобы экран провода не задел шину +5V. Прошивку контроллера можно осуществлять непосредственно на плате. Светодиоды для индикации процесса прошивки. Типичный график поведения машины приложен. Старт с нуля, без разгона-торможения.

Если нужно будет фото контроллера в сборе, или коэффициенты настройки для моего станка, размещу. Интересно будет узнать коэффициенты PID регулятора для вашей серво системы.

Буду признателен за рабочие проверенные схемы силовых ключей для сервомоторов, 110 В, 20А.

Скажите о программе для Windows .
Не хочет коннектиться с ATMEGой Правда у меня нет COM и использую преобразователь USB-COM (PL2003) там готовые 5ти
вольтные выходы-входы и подключаю напрямую без MAX232
может что-то не так??

1 month later
ParaNoiG

Помогите с ответами на следующие вопросы:

-Сколько за один оборот генерируется импульсов?

-Что представляет собой драйвер?

-Как при задании нагрузки происходит стабилизация скорости?

-Есть ли описание законов перехода с одного режима в другой?

И есть ли у вас ещё какая-нибудь информация по сервоконтроллеру, кроме той что на сайте Чена?