Два энкодера на одной оси, как подключить к LinuxCNC
-
EvgenyK
- Кандидат
- Сообщения: 78
- Зарегистрирован: 05 авг 2012, 16:49
- Репутация: 0
- Контактная информация:
Re: Два энкодера на одной оси, как подключить к LinuxCNC
и еще...забыл сказать...
у меня поворотная ось работает как линейная, т.е. единицы измерения не градусы, а миллиметры.
обрабатываю одинаковые по диаметру заготовки и так удобнее делать УП
у меня поворотная ось работает как линейная, т.е. единицы измерения не градусы, а миллиметры.
обрабатываю одинаковые по диаметру заготовки и так удобнее делать УП
God's gonna cut you down...
-
EvgenyK
- Кандидат
- Сообщения: 78
- Зарегистрирован: 05 авг 2012, 16:49
- Репутация: 0
- Контактная информация:
Re: Два энкодера на одной оси, как подключить к LinuxCNC
Ник, а как ПИД настроить? 
че-то у меня болтается вал туда-сюда...
как подобрать правильно константы регулирования?
че-то у меня болтается вал туда-сюда...
как подобрать правильно константы регулирования?
God's gonna cut you down...
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Два энкодера на одной оси, как подключить к LinuxCNC
С ПИД все хитро.
Для начала выведи в hal scope пины
axis.N.joint-pos-cmd
axis.N.joint-pos-fb
axis.N.f-error
и можно еще
axis.N.joint-vel-cmd
для твоей оси. Сразу сохрани настройки HAL Scope, чтобы потом не выставлять их заново.
После этого открываешь калибровку осей (есть где-то в меню), а станку даешь повторяющееся задание
После этого смотришь на графики. Основная задача свести к минимуму axis.N.f-error.
Для этого надо подбирать параметры ПИД, есть несколько способов, вот самый простой: вот тут в пункте 1.2.6 EMC2 Integrators Manual Перевод на русский язык #3
т.е. увеличиваешь параметры в нужном порядке.
При этом делай скриншоты halscope и выкладывай сюда, будем тебе подсказывать, что куда подкрутить.
Для начала выведи в hal scope пины
axis.N.joint-pos-cmd
axis.N.joint-pos-fb
axis.N.f-error
и можно еще
axis.N.joint-vel-cmd
для твоей оси. Сразу сохрани настройки HAL Scope, чтобы потом не выставлять их заново.
После этого открываешь калибровку осей (есть где-то в меню), а станку даешь повторяющееся задание
После этого смотришь на графики. Основная задача свести к минимуму axis.N.f-error.
Для этого надо подбирать параметры ПИД, есть несколько способов, вот самый простой: вот тут в пункте 1.2.6 EMC2 Integrators Manual Перевод на русский язык #3
т.е. увеличиваешь параметры в нужном порядке.
При этом делай скриншоты halscope и выкладывай сюда, будем тебе подсказывать, что куда подкрутить.
-
EvgenyK
- Кандидат
- Сообщения: 78
- Зарегистрирован: 05 авг 2012, 16:49
- Репутация: 0
- Контактная информация:
Re: Два энкодера на одной оси, как подключить к LinuxCNC
утром буду пробовать. спасибо!
God's gonna cut you down...
-
EvgenyK
- Кандидат
- Сообщения: 78
- Зарегистрирован: 05 авг 2012, 16:49
- Репутация: 0
- Контактная информация:
Re: Два энкодера на одной оси, как подключить к LinuxCNC
настраиваю уже пару часов ПИД...
значение ошибки примерно 0.65-0,68 получается. это много? получается, что ось движение оси отстает от расчетного её положения? как с этим бороться?
вот что показывает hal scope...
P=8.5
I=0.0001
D=0.25
FF0=0
FF1=0.003
FF2=0.007
скачал еще pid_tuning, только вот не разберусь как ее отдельно запустить, или прикрутить к axis
может подскажете как ее использовать?
значение ошибки примерно 0.65-0,68 получается. это много? получается, что ось движение оси отстает от расчетного её положения? как с этим бороться?
вот что показывает hal scope...
P=8.5
I=0.0001
D=0.25
FF0=0
FF1=0.003
FF2=0.007
скачал еще pid_tuning, только вот не разберусь как ее отдельно запустить, или прикрутить к axis
может подскажете как ее использовать?
God's gonna cut you down...
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Два энкодера на одной оси, как подключить к LinuxCNC
читал здесь?
http://cnc-club.ru/forum/viewtopic.php? ... 687#p23687
http://cnc-club.ru/forum/viewtopic.php? ... 189#p13189
можно в хал прописать что то примерно:
или в ини в разделе DISPLAY:
http://cnc-club.ru/forum/viewtopic.php? ... 687#p23687
http://cnc-club.ru/forum/viewtopic.php? ... 189#p13189
можно в хал прописать что то примерно:
Код: Выделить всё
loadusr -Wn gui0 pyvcp -c gui0 servo-tuning-gui.xmlКод: Выделить всё
PYVCP = servo-tuning-gui.xml-
EvgenyK
- Кандидат
- Сообщения: 78
- Зарегистрирован: 05 авг 2012, 16:49
- Репутация: 0
- Контактная информация:
Re: Два энкодера на одной оси, как подключить к LinuxCNC
спасибо. читал вроде, но еще, видимо, не осознал %)
а куда надо распаковать содержимое архива? в папку с настройками станка?
а вот фото поворотной оси, если кому интересно
а куда надо распаковать содержимое архива? в папку с настройками станка?
а вот фото поворотной оси, если кому интересно
God's gonna cut you down...
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Два энкодера на одной оси, как подключить к LinuxCNC
xml должен быть в папке с конфигурацией
-
EvgenyK
- Кандидат
- Сообщения: 78
- Зарегистрирован: 05 авг 2012, 16:49
- Репутация: 0
- Контактная информация:
Re: Два энкодера на одной оси, как подключить к LinuxCNC
nkp, а перед использованием pid_tuning нужно его поправить?
God's gonna cut you down...
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Два энкодера на одной оси, как подключить к LinuxCNC
что есть "поправить" ??EvgenyK писал(а):нужно его поправить?
-
EvgenyK
- Кандидат
- Сообщения: 78
- Зарегистрирован: 05 авг 2012, 16:49
- Репутация: 0
- Контактная информация:
Re: Два энкодера на одной оси, как подключить к LinuxCNC
ну в нем пины явно отличаются от моих 
я просто еще не совсем овладел integration manual и, видимо, задаю глупые вопросы...
я просто еще не совсем овладел integration manual и, видимо, задаю глупые вопросы...
God's gonna cut you down...
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Два энкодера на одной оси, как подключить к LinuxCNC
конечно название пинов необходимо привести в соответствиеEvgenyK писал(а):нем пины явно отличаются от моих
в тексте ошибки (при запуске емс) любое "несоответствие" в хал подробно указывается(с именами пинов)
это сильно облегчает настройку
читай всегда этот раздел:
-
EvgenyK
- Кандидат
- Сообщения: 78
- Зарегистрирован: 05 авг 2012, 16:49
- Репутация: 0
- Контактная информация:
Re: Два энкодера на одной оси, как подключить к LinuxCNC
да-да, читаю постоянно.
получается что pid_tuning загружает еще раз все компоненты HAL?
надо настраивать все пины и все параметры в соответствии с рабочей конфигурацией?
какая-то беда с настройкой ПИД, уже не пойму что делать...
на скорости 1000 мм/мин настраивается всё более-менее прилично, поставил скорость 3000 мм/мин
и стало всё снова пичалька...ось болтается как маятник, иногда выдает joint following error %(
получается что pid_tuning загружает еще раз все компоненты HAL?
надо настраивать все пины и все параметры в соответствии с рабочей конфигурацией?
какая-то беда с настройкой ПИД, уже не пойму что делать...
на скорости 1000 мм/мин настраивается всё более-менее прилично, поставил скорость 3000 мм/мин
и стало всё снова пичалька...ось болтается как маятник, иногда выдает joint following error %(
God's gonna cut you down...
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Два энкодера на одной оси, как подключить к LinuxCNC
а 0.5-0.6 это в каких единицах? Градусы?
Для pid_tuning надо еще пины поменять... Чем тебе не нравится калибровка, которая в axis?
Скорее всего P поднимать.EvgenyK писал(а):значение ошибки примерно 0.65-0,68 получается. это много? получается, что ось движение оси отстает от расчетного её положения? как с этим бороться?
Для pid_tuning надо еще пины поменять... Чем тебе не нравится калибровка, которая в axis?
-
EvgenyK
- Кандидат
- Сообщения: 78
- Зарегистрирован: 05 авг 2012, 16:49
- Репутация: 0
- Контактная информация:
Re: Два энкодера на одной оси, как подключить к LinuxCNC
Как калибровать в axis? %)
God's gonna cut you down...
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Два энкодера на одной оси, как подключить к LinuxCNC
Сейчас нет LinuxCNC под рукой. Посмотри в меню, там должно быть что-то вроде "калибровка осей"
-
EvgenyK
- Кандидат
- Сообщения: 78
- Зарегистрирован: 05 авг 2012, 16:49
- Репутация: 0
- Контактная информация:
Re: Два энкодера на одной оси, как подключить к LinuxCNC
Вобщем сделал червячный редуктор совсем безлюфтовым. Сделал новое крепление для энкодера, ибо он шатался от любого прикосновения.
С ПИД регулированием возник вопрос.. вопросище!
Что только не делаю, никак не могу избавиться от пиков (на скриншоте видно) при пуске и остановке движения.
Пробовал менять параметры ПИД...при любых настройках пики остаются всё равно..
Сейчас вот думаю, что эти пики, это задержка (0.05-0.08 секунды) между управляющим воздействием и обратной связью.
Но откуда она берется?
Люфта в редукторе нет, в муфтах - тоже нет. Предположил было, что редуктор с задержкой передает движение, но мозг говорит, что такого быть не может.
Есть подозрения, на настройки hal.
Вот кусок, который отвечает за поворотную ось:
Может здесь что-то не так?
Как бы проверить и что проверить?
С ПИД регулированием возник вопрос.. вопросище!
Что только не делаю, никак не могу избавиться от пиков (на скриншоте видно) при пуске и остановке движения.
Пробовал менять параметры ПИД...при любых настройках пики остаются всё равно..
Сейчас вот думаю, что эти пики, это задержка (0.05-0.08 секунды) между управляющим воздействием и обратной связью.
Но откуда она берется?
Люфта в редукторе нет, в муфтах - тоже нет. Предположил было, что редуктор с задержкой передает движение, но мозг говорит, что такого быть не может.
Есть подозрения, на настройки hal.
Вот кусок, который отвечает за поворотную ось:
Код: Выделить всё
#*******************
# AXIS Y
#*******************
net yenable => hm2_5i20.0.stepgen.02.enable
net ypos-fb <= hm2_5i20.0.encoder.00.position
net ypos-out => hm2_5i20.0.stepgen.02.velocity-cmd
# Step Gen signals/setup
setp hm2_5i20.0.stepgen.02.dirsetup [AXIS_1]DIRSETUP
setp hm2_5i20.0.stepgen.02.dirhold [AXIS_1]DIRHOLD
setp hm2_5i20.0.stepgen.02.steplen [AXIS_1]STEPLEN
setp hm2_5i20.0.stepgen.02.stepspace [AXIS_1]STEPSPACE
setp hm2_5i20.0.stepgen.02.position-scale [AXIS_1]SCALE
setp hm2_5i20.0.stepgen.02.maxaccel 0
setp hm2_5i20.0.stepgen.02.maxvel 0
setp hm2_5i20.0.stepgen.02.step_type 0
setp hm2_5i20.0.stepgen.02.control-type 1
setp hm2_5i20.0.encoder.00.counter-mode 0
setp hm2_5i20.0.encoder.00.filter 1
setp hm2_5i20.0.encoder.00.index-invert 0
setp hm2_5i20.0.encoder.00.index-mask 0
setp hm2_5i20.0.encoder.00.index-mask-invert 0
setp hm2_5i20.0.encoder.00.scale [AXIS_1]INPUT_SCALE
net ypos-fb => axis.1.motor-pos-fb => pid.0.feedback
net ypos-cmd <= axis.1.motor-pos-cmd => pid.0.command
net yenable axis.1.amp-enable-out => pid.0.enable
net ypos-out <= pid.0.output
Как бы проверить и что проверить?
God's gonna cut you down...
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Два энкодера на одной оси, как подключить к LinuxCNC
Насколько я понимаю Ferror в пике достигает 0.4, что в принципе не так уж и плохо. Но очень похоже на то, что у тебя стоит слишком большое ускорение оси.
Такое ощущение, что скорость мгновенно скачет до заданного уровня, а станок пытается ее догнать, отсюда и проскок на более высокую скорость. В общем попробуй задать ускорение этой оси по меньше. Кстати, какое оно у тебя сейчас?
Такое ощущение, что скорость мгновенно скачет до заданного уровня, а станок пытается ее догнать, отсюда и проскок на более высокую скорость. В общем попробуй задать ускорение этой оси по меньше. Кстати, какое оно у тебя сейчас?
-
EvgenyK
- Кандидат
- Сообщения: 78
- Зарегистрирован: 05 авг 2012, 16:49
- Репутация: 0
- Контактная информация:
Re: Два энкодера на одной оси, как подключить к LinuxCNC
Ускорение у меня....
Если оно задается с помощью строки в ini MAX_ACCELERATION = 200.0, только эта строка нигде не используется в hal'е...
В hal'е есть строка hm2_5i20.0.stepgen.02.maxaccel 0, также и hm2_5i20.0.stepgen.02.maxvel 0.
В integrator_manual сказано, что по умолчанию ноль - это ускорение, скорость без ограничений...
Какое ускорение использовать?
Если оно задается с помощью строки в ini MAX_ACCELERATION = 200.0, только эта строка нигде не используется в hal'е...
В hal'е есть строка hm2_5i20.0.stepgen.02.maxaccel 0, также и hm2_5i20.0.stepgen.02.maxvel 0.
В integrator_manual сказано, что по умолчанию ноль - это ускорение, скорость без ограничений...
Какое ускорение использовать?
God's gonna cut you down...
