Страница 2 из 3
Re: Два энкодера на одной оси, как подключить к LinuxCNC
Добавлено: 10 ноя 2012, 11:15
EvgenyK
и еще...забыл сказать...
у меня поворотная ось работает как линейная, т.е. единицы измерения не градусы, а миллиметры.
обрабатываю одинаковые по диаметру заготовки и так удобнее делать УП
Re: Два энкодера на одной оси, как подключить к LinuxCNC
Добавлено: 10 ноя 2012, 13:47
Nick
типо того

Re: Два энкодера на одной оси, как подключить к LinuxCNC
Добавлено: 10 ноя 2012, 14:24
EvgenyK
Ник, а как ПИД настроить?

че-то у меня болтается вал туда-сюда...
как подобрать правильно константы регулирования?
Re: Два энкодера на одной оси, как подключить к LinuxCNC
Добавлено: 10 ноя 2012, 20:01
Nick
С ПИД все хитро.
Для начала выведи в 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 и выкладывай сюда, будем тебе подсказывать, что куда подкрутить.
Re: Два энкодера на одной оси, как подключить к LinuxCNC
Добавлено: 10 ноя 2012, 22:05
EvgenyK
утром буду пробовать. спасибо!
Re: Два энкодера на одной оси, как подключить к LinuxCNC
Добавлено: 11 ноя 2012, 12:52
EvgenyK
настраиваю уже пару часов ПИД...
значение ошибки примерно 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
может подскажете как ее использовать?
Re: Два энкодера на одной оси, как подключить к LinuxCNC
Добавлено: 11 ноя 2012, 14:13
nkp
читал здесь?
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
или в ини в разделе DISPLAY:
Re: Два энкодера на одной оси, как подключить к LinuxCNC
Добавлено: 11 ноя 2012, 14:56
EvgenyK
спасибо. читал вроде, но еще, видимо, не осознал %)
а куда надо распаковать содержимое архива? в папку с настройками станка?
а вот фото поворотной оси, если кому интересно

Re: Два энкодера на одной оси, как подключить к LinuxCNC
Добавлено: 11 ноя 2012, 15:00
nkp
xml должен быть в папке с конфигурацией
Re: Два энкодера на одной оси, как подключить к LinuxCNC
Добавлено: 12 ноя 2012, 11:14
EvgenyK
nkp, а перед использованием pid_tuning нужно его поправить?
Re: Два энкодера на одной оси, как подключить к LinuxCNC
Добавлено: 12 ноя 2012, 11:32
nkp
EvgenyK писал(а):нужно его поправить?
что есть "поправить" ??
Re: Два энкодера на одной оси, как подключить к LinuxCNC
Добавлено: 12 ноя 2012, 11:44
EvgenyK
ну в нем пины явно отличаются от моих
я просто еще не совсем овладел integration manual и, видимо, задаю глупые вопросы...
Re: Два энкодера на одной оси, как подключить к LinuxCNC
Добавлено: 12 ноя 2012, 11:52
nkp
EvgenyK писал(а):нем пины явно отличаются от моих
конечно название пинов необходимо привести в соответствие
в тексте ошибки (при запуске емс) любое "несоответствие" в хал подробно указывается(с именами пинов)
это сильно облегчает настройку
читай всегда этот раздел:
Re: Два энкодера на одной оси, как подключить к LinuxCNC
Добавлено: 12 ноя 2012, 15:23
EvgenyK
да-да, читаю постоянно.
получается что pid_tuning загружает еще раз все компоненты HAL?
надо настраивать все пины и все параметры в соответствии с рабочей конфигурацией?
какая-то беда с настройкой ПИД, уже не пойму что делать...
на скорости 1000 мм/мин настраивается всё более-менее прилично, поставил скорость 3000 мм/мин
и стало всё снова пичалька...ось болтается как маятник, иногда выдает joint following error %(
Re: Два энкодера на одной оси, как подключить к LinuxCNC
Добавлено: 12 ноя 2012, 19:53
Nick
а 0.5-0.6 это в каких единицах? Градусы?
EvgenyK писал(а):значение ошибки примерно 0.65-0,68 получается. это много? получается, что ось движение оси отстает от расчетного её положения? как с этим бороться?
Скорее всего P поднимать.
Для pid_tuning надо еще пины поменять... Чем тебе не нравится калибровка, которая в axis?
Re: Два энкодера на одной оси, как подключить к LinuxCNC
Добавлено: 12 ноя 2012, 23:05
EvgenyK
Как калибровать в axis? %)
Re: Два энкодера на одной оси, как подключить к LinuxCNC
Добавлено: 12 ноя 2012, 23:28
Nick
Сейчас нет LinuxCNC под рукой. Посмотри в меню, там должно быть что-то вроде "калибровка осей"
Re: Два энкодера на одной оси, как подключить к LinuxCNC
Добавлено: 23 ноя 2012, 15:18
EvgenyK
Вобщем сделал червячный редуктор совсем безлюфтовым. Сделал новое крепление для энкодера, ибо он шатался от любого прикосновения.
С ПИД регулированием возник вопрос.. вопросище!
Что только не делаю, никак не могу избавиться от пиков (на скриншоте видно) при пуске и остановке движения.
Пробовал менять параметры ПИД...при любых настройках пики остаются всё равно..
Сейчас вот думаю, что эти пики, это задержка (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
Может здесь что-то не так?
Как бы проверить и что проверить?
Re: Два энкодера на одной оси, как подключить к LinuxCNC
Добавлено: 23 ноя 2012, 15:42
Nick
Насколько я понимаю Ferror в пике достигает 0.4, что в принципе не так уж и плохо. Но очень похоже на то, что у тебя стоит слишком большое ускорение оси.
Такое ощущение, что скорость мгновенно скачет до заданного уровня, а станок пытается ее догнать, отсюда и проскок на более высокую скорость. В общем попробуй задать ускорение этой оси по меньше. Кстати, какое оно у тебя сейчас?
Re: Два энкодера на одной оси, как подключить к LinuxCNC
Добавлено: 24 ноя 2012, 12:21
EvgenyK
Ускорение у меня....
Если оно задается с помощью строки в ini MAX_ACCELERATION = 200.0, только эта строка нигде не используется в hal'е...
В hal'е есть строка hm2_5i20.0.stepgen.02.maxaccel 0, также и hm2_5i20.0.stepgen.02.maxvel 0.
В integrator_manual сказано, что по умолчанию ноль - это ускорение, скорость без ограничений...
Какое ускорение использовать?