Всего понемногу (реанимация 4 axis гравера по стеклу)
- NightV
- Почётный участник

- Сообщения: 6610
- Зарегистрирован: 30 дек 2011, 09:14
- Репутация: 2279
- Настоящее имя: Владимир Айрапетян
- Откуда: Israel
- Контактная информация:
Re: Всего понемногу (реанимация 4 axis гравера по стеклу)
кажется было 900
это ладно... сегодня я чет намутил с ПИД и нажал переместится 10мм
компутер пока прикреплен на временом столике к одной из колон станка струбциной... он вошел в такой резонанс что я не мог попасть мышкой в СТОП! точнее целился одной рукой а другой держал монитор! жахнул ладонью по клаве примерно в район где F1 и F2... все встало... думаю завтра прикрутить к столу на всякий лучай E-Stop
мда... а случаи оказываются бывают разные 
Всё просто! если знаешь КАК!
- NightV
- Почётный участник

- Сообщения: 6610
- Зарегистрирован: 30 дек 2011, 09:14
- Репутация: 2279
- Настоящее имя: Владимир Айрапетян
- Откуда: Israel
- Контактная информация:
Re: Всего понемногу (реанимация 4 axis гравера по стеклу)
после войны с Х потом еще Y настраивать... там передача через ремень такая-же но стол весом с пол тонны
чувствую если не осилю принципы ПИД на Х то с Y одно из двух.. или я всетаки вьеду КАК настраивать... или стол вьедет в меня 
хотя ссылочка от Lexxa довольно занимательна
вчитываюсь перед завтрашним "турниром"
хотя ссылочка от Lexxa довольно занимательна
Всё просто! если знаешь КАК!
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Всего понемногу (реанимация 4 axis гравера по стеклу)
Ник знаетLexxa писал(а):может Ник знает, как вытащить график скорости??
Очень просто в EMC2 есть такая штука - halscope, это что-то типа осциллографа. В нем можно строить графики значений любых пинов. Находится в верхнем меню.
Для настройки PID очень одним из самых важных параметров является тот самый Ferror. При настройке наверняка будут полезны pid.command, pid.error, motion.current-vel. Также скорость конкретной оси можно получить из ее положения и компонента ddt (dx/dt - производная положения = скорость) (ускорение = dv/dt = d2x/d2t, и т.д.). Компонент ddt нужно прописать в hal (или в консоле с halcmd):
loadrt ddt count=1
addf ddt.0 base-thread
net velx axis.0.motor-pos-fb ddt.0.in
а скорость можно будет снимать с пина ddt.0.out.
ferror - это максимальная ошибка следования траектории. Вообще мне кажется странным значения ferror равным 1 (это по идее 1 мм). Хотя, учитывая вес твоего станка и то, что ты его пытаешься гонять на больших ускорениях (за счет pid) это можно понять.NightV писал(а):вот я млин лопух промучился целый вечер.. на малых перемещения (0.001 - 1мм) бегает, выше срывается при торможении.... и оказывается начал со слишком малых велечин ferror 0.1 и min_ferror 0.01 на сайте linuxcnc вроде ставят ferror 1
min_ferror это тоже самое, что и ferror, но при маленьких скоростях. Если в ini указаны оба ferror и min_ferror, то значение ferror для вычисления отклонения от траектории будет пропорционально скорости. Вот формула:
ferror_calc = (ferror-min_ferror)*v/[TRAJ]MAX_VELOCITY + min_ferror.
Т.е. прямая от min_ferror при скорости близкой к 0 и ferror при скорости равной [TRAJ]MAX_VELOCITY.
- Lexxa
- Мастер
- Сообщения: 2703
- Зарегистрирован: 16 дек 2011, 16:48
- Репутация: 319
- Настоящее имя: Алексей
- Откуда: ryazan
- Контактная информация:
Re: Всего понемногу (реанимация 4 axis гравера по стеклу)
Ferror работает на всех скоростях?
Можно ли отключить ferror например на быстром ходу, потому что при обработке отклонение от траектории на 1 мм это ни в какие ворота не лезет.
Поскольку например алюминий можно обрабатывать достаточно быстро.
По идее min_ferror надо бы ставить меньше чем дискрет перемещения, т.е. в случае пром. станков это хотябы 5 мкм.
Можно ли отключить ferror например на быстром ходу, потому что при обработке отклонение от траектории на 1 мм это ни в какие ворота не лезет.
Поскольку например алюминий можно обрабатывать достаточно быстро.
По идее min_ferror надо бы ставить меньше чем дискрет перемещения, т.е. в случае пром. станков это хотябы 5 мкм.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Всего понемногу (реанимация 4 axis гравера по стеклу)
На быстром ходу в смысле G0?Lexxa писал(а):Можно ли отключить ferror например на быстром ходу, потому что при обработке отклонение от траектории на 1 мм это ни в какие ворота не лезет.
Нет. Наоборот больше, т.е. если дискретность станка 5мкм, он не сможет следовать траектории точнее, чем 5 мкм. В принципе, ferror не может быть очень маленьким, каким бы не был станок, у него все равно будут вибрации, и прочие прелести. Суть настройки PID и выбора скорости резания - свести значение отклонения от траектории к минимальным значениям. Большая скорость = большие ускорения на резких поворотах = либо отклонения от траетории, либо замедления = меньшая скорость.Lexxa писал(а):По идее min_ferror надо бы ставить меньше чем дискрет перемещения, т.е. в случае пром. станков это хотябы 5 мкм.
- Lexxa
- Мастер
- Сообщения: 2703
- Зарегистрирован: 16 дек 2011, 16:48
- Репутация: 319
- Настоящее имя: Алексей
- Откуда: ryazan
- Контактная информация:
Re: Всего понемногу (реанимация 4 axis гравера по стеклу)
Понятно, ну например G0 или при ручных перемещениях
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Всего понемногу (реанимация 4 axis гравера по стеклу)
Хм.... наверное можно поменять его при в параметре оси через mux2, на вход подать значение halui ручного режима. Но вообще лучше просто сделать по-больше ferror.
Суть такая: на больших скоростях при большом ferror ошибки не будет. При уменьшении скорости актуальный ferror будет уменьшаться пропорционально скорости. Т.е. при небольших скоростях будем получать хорошее значение ferror. Почему нет смысла ставить маленький ferror? Да потому, что EMC2 не учитывает его значение при планировке траектории. Т.к. физически не может этого сделать (ошибка следования может возникнуть от любого внешнего значения). Поэтому ferror это только информационная величина.
Ее можно отследить после выполнения обработки. Если очень хочется можно сделать триггер, который будет отслеживать превышение любого заданного ferror при обработке и выдавать ошибку.
Изменить реальное значение отклонения от траектории можно только изменениями скорости (или других параметров) обработки или настройки железа станка.
Суть такая: на больших скоростях при большом ferror ошибки не будет. При уменьшении скорости актуальный ferror будет уменьшаться пропорционально скорости. Т.е. при небольших скоростях будем получать хорошее значение ferror. Почему нет смысла ставить маленький ferror? Да потому, что EMC2 не учитывает его значение при планировке траектории. Т.к. физически не может этого сделать (ошибка следования может возникнуть от любого внешнего значения). Поэтому ferror это только информационная величина.
Ее можно отследить после выполнения обработки. Если очень хочется можно сделать триггер, который будет отслеживать превышение любого заданного ferror при обработке и выдавать ошибку.
Изменить реальное значение отклонения от траектории можно только изменениями скорости (или других параметров) обработки или настройки железа станка.
- Lexxa
- Мастер
- Сообщения: 2703
- Зарегистрирован: 16 дек 2011, 16:48
- Репутация: 319
- Настоящее имя: Алексей
- Откуда: ryazan
- Контактная информация:
Re: Всего понемногу (реанимация 4 axis гравера по стеклу)
тогда вопросов нет к ferror, непонятно только зачем оно вообще нужно, но как говорится если на скорость не влияет, то...Nick писал(а):EMC2 не учитывает его значение при планировке траектории
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Всего понемногу (реанимация 4 axis гравера по стеклу)
Нужно, чтобы при возникновении нештатной ситуации станок остановился, например фреза стукнулась в материал, или с движком что-то не так, или задан такой режим, что станок не справился. Или ключ забыл с детали убрать
.
- NightV
- Почётный участник

- Сообщения: 6610
- Зарегистрирован: 30 дек 2011, 09:14
- Репутация: 2279
- Настоящее имя: Владимир Айрапетян
- Откуда: Israel
- Контактная информация:
Re: Всего понемногу (реанимация 4 axis гравера по стеклу)
таак... дело сдвинулось с места, получилось настроить оси X Y до значений ferror 0.007 в пике, на любых скоростях и любых перемещениях, выше 0.007 не поднимается. сегодня помучаю Z и A 
Всё просто! если знаешь КАК!
- NightV
- Почётный участник

- Сообщения: 6610
- Зарегистрирован: 30 дек 2011, 09:14
- Репутация: 2279
- Настоящее имя: Владимир Айрапетян
- Откуда: Israel
- Контактная информация:
Re: Всего понемногу (реанимация 4 axis гравера по стеклу)
мануал всегда полезен если что-то непонятно
но и без халсцилоскопа никуда, очень еще оказался полезным параметр FF1 чтобы сгладить ferrror,
FF1 получился 0.0045-0.0049, меньше кривая ferror ползет вверх от нуля(своего нуля) больше вниз,
короче щас пики балансируют вокруг нуля и максимальные иногда 0.0065-0.0068.
но что самое интересное настройки PID на осях получились разные, движки и драйвы одинаковые, висят на осях однинаково, разница лиш в вессе что они тягают.
вечером выложу скрины
FF1 получился 0.0045-0.0049, меньше кривая ferror ползет вверх от нуля(своего нуля) больше вниз,
короче щас пики балансируют вокруг нуля и максимальные иногда 0.0065-0.0068.
но что самое интересное настройки PID на осях получились разные, движки и драйвы одинаковые, висят на осях однинаково, разница лиш в вессе что они тягают.
вечером выложу скрины
Последний раз редактировалось NightV 17 янв 2012, 11:07, всего редактировалось 2 раза.
Всё просто! если знаешь КАК!
- NightV
- Почётный участник

- Сообщения: 6610
- Зарегистрирован: 30 дек 2011, 09:14
- Репутация: 2279
- Настоящее имя: Владимир Айрапетян
- Откуда: Israel
- Контактная информация:
Re: Всего понемногу (реанимация 4 axis гравера по стеклу)
вспомнил фразу которая когдато (мягко выражаясь.. так-как прозвучало в тему) мне очень понравилась ( до коликов
) "Read The FuХХing Manual"
в нашем случае можно перевести так "читай, читай... много блин читай"
и делай выводы из прочтеного...
хатя обидно, ПИД настраивать же не каждый день и даже не раз в пару месяцев, а когда млин понадобится следующий раз то это будет очень не скоро, и уже успееш все млин забыть что и как
и будет опять "читай, читай... много блин читай"
в нашем случае можно перевести так "читай, читай... много блин читай"
хатя обидно, ПИД настраивать же не каждый день и даже не раз в пару месяцев, а когда млин понадобится следующий раз то это будет очень не скоро, и уже успееш все млин забыть что и как
и будет опять "читай, читай... много блин читай"
Всё просто! если знаешь КАК!
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Всего понемногу (реанимация 4 axis гравера по стеклу)
Так и должно быть. Системы управляемые pid разные = параметры должны быть разными. Значит все правильно сделалNightV писал(а):но что самое интересное настройки PID на осях получились разные, движки и драйвы одинаковые, висят на осях однинаково, разница лиш в вессе что они тягают.
- Lexxa
- Мастер
- Сообщения: 2703
- Зарегистрирован: 16 дек 2011, 16:48
- Репутация: 319
- Настоящее имя: Алексей
- Откуда: ryazan
- Контактная информация:
Re: Всего понемногу (реанимация 4 axis гравера по стеклу)
Да, может мы тут накидаем како-нить более менее обобщенный мануальчик, как настраивать в ЕМС этот ПИД.
А то реально пока второй раз придется, 10 раз свё забудется. Я поэтому в своей ветке более менее подробно пишу всё))
Потому что приходишь на работу и уже не помнится как там и что по соединениям и схеме.
Днем я удаленно копаюсь, а вечером за компом.
А то реально пока второй раз придется, 10 раз свё забудется. Я поэтому в своей ветке более менее подробно пишу всё))
Потому что приходишь на работу и уже не помнится как там и что по соединениям и схеме.
Днем я удаленно копаюсь, а вечером за компом.
- NightV
- Почётный участник

- Сообщения: 6610
- Зарегистрирован: 30 дек 2011, 09:14
- Репутация: 2279
- Настоящее имя: Владимир Айрапетян
- Откуда: Israel
- Контактная информация:
Re: Всего понемногу (реанимация 4 axis гравера по стеклу)
думаю по оконцовке открою новую тему со статьей, правда я еще не писал статей на ЧПУшную тематику, но думаю должно получится.
хотя имея опыт настройки всего одного станка, чейто я замахнулся
хотя принцип почти понятен, еще нуна разобраться для статьи за ЧТО конкретно отвечают эти параметры
OUTPUT_SCALE (я все настроил со значениями -1 на Х, и 1 на Y, на на настройки влияют координально, нужно выставлять сначала этот параметр а вот уже ПОТОМ приступать к PID)
MAX_OUTPUT (особых перемен в поведении осей не заметил)
DEADBAND (оставил как есть, особых перемен в поведении осей не заметил, по умолчанию стоит 0.0001 вроде)
BIAS (как я понял используется редко и то только для hm2, тоесть Mesa)
FF0 (что-то делает но только в худшую сторону, чем меньше значение тем стабильниее, по оконцовке оставил 0)
FF2 (немного помог когда настраивал Y, сильно в него не углублялся)
сегодня еще посижу с X Y.. есть пики до 0.007 при разгоне и торможении, если получится от них ихбавится вообще будет шоколад
примерно как здесь

вот что про этот скрин пишут
хотя имея опыт настройки всего одного станка, чейто я замахнулся
хотя принцип почти понятен, еще нуна разобраться для статьи за ЧТО конкретно отвечают эти параметры
OUTPUT_SCALE (я все настроил со значениями -1 на Х, и 1 на Y, на на настройки влияют координально, нужно выставлять сначала этот параметр а вот уже ПОТОМ приступать к PID)
MAX_OUTPUT (особых перемен в поведении осей не заметил)
DEADBAND (оставил как есть, особых перемен в поведении осей не заметил, по умолчанию стоит 0.0001 вроде)
BIAS (как я понял используется редко и то только для hm2, тоесть Mesa)
FF0 (что-то делает но только в худшую сторону, чем меньше значение тем стабильниее, по оконцовке оставил 0)
FF2 (немного помог когда настраивал Y, сильно в него не углублялся)
сегодня еще посижу с X Y.. есть пики до 0.007 при разгоне и торможении, если получится от них ихбавится вообще будет шоколад
примерно как здесь

вот что про этот скрин пишут
вот какраз с FF2 сильно не ковырялся, и по ходу именно он атвечает за ускорение и торможениеHere is with more gain, going as far as we can go with just P gain. When the P is as high as you can get without instability (using D conservatively until you have the highest P possible) you need to start adding FF1 and FF2 to improve the error during constant-speed movement and also at the accelerations.
Всё просто! если знаешь КАК!
- Lexxa
- Мастер
- Сообщения: 2703
- Зарегистрирован: 16 дек 2011, 16:48
- Репутация: 319
- Настоящее имя: Алексей
- Откуда: ryazan
- Контактная информация:
Re: Всего понемногу (реанимация 4 axis гравера по стеклу)
OUTPUT_SCALE - масштаб так сказать. Отношение одного оборта енкодера к единице перемещения стола. Грубо говоря на сколько переедет стол за один оборот энкодера.
MAX_OUTPUT - максимальная амплитуза Uзадания. Например если ы хочешь не +-10В, а +-5.
BIAS - смещение. Это добавление постоянной составляющей в Uзадания. Например если ты её укажешь в 1В, то вместо 3В на выходе будешь иметь 3+1, или 2В, если укжешь смещение отрицательным. Эту штуку можно использовать как тормоз оси Z, если она под своей тяжестью ползет вниз.
DEADBAND насколько я понял это люфт органов перемещения.
FF0 это вроде бы параметр, похожий на расстояние. Не ясно на какое расстояние.
FF1 это скорось прохождения этого расстояния - первая производная от FF0.
FF2 - вторая производная от FF2 - ускорение.
Не ясно что за расстояние, и скорость и ускорение чего.
Может скорость наростания Uзадания?
Формулу бы найти по которой оно форимируется, хотя бы обобщенную.
MAX_OUTPUT - максимальная амплитуза Uзадания. Например если ы хочешь не +-10В, а +-5.
BIAS - смещение. Это добавление постоянной составляющей в Uзадания. Например если ты её укажешь в 1В, то вместо 3В на выходе будешь иметь 3+1, или 2В, если укжешь смещение отрицательным. Эту штуку можно использовать как тормоз оси Z, если она под своей тяжестью ползет вниз.
DEADBAND насколько я понял это люфт органов перемещения.
FF0 это вроде бы параметр, похожий на расстояние. Не ясно на какое расстояние.
FF1 это скорось прохождения этого расстояния - первая производная от FF0.
FF2 - вторая производная от FF2 - ускорение.
Не ясно что за расстояние, и скорость и ускорение чего.
Может скорость наростания Uзадания?
Формулу бы найти по которой оно форимируется, хотя бы обобщенную.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Всего понемногу (реанимация 4 axis гравера по стеклу)
Это "люфт ошибки". Т.е. если pid.error по модулю меньше DEADBAND, то pid.error будет считаться 0 и пид не будет стараться компенсировать этот люфт.Lexxa писал(а):DEADBAND насколько я понял это люфт органов перемещения.
Его значение в любом случае должно быть немного больше половины деления энкодера, иначе пид никогда не успокоится
А вот тут все зависит от контролируемой величины.Lexxa писал(а):FF0 это вроде бы параметр, похожий на расстояние. Не ясно на какое расстояние.
FF1 это скорось прохождения этого расстояния - первая производная от FF0.
FF2 - вторая производная от FF2 - ускорение.
FF0 - умножается на commanded value (скорость или положение). Для положения должен быть равен 0 (практически всегда), для скорости может компенсировать силу трения или обратную ЭДС движка.
FF1 - умножается на первую производную заданной величины. Для скорости - будет пропорционален ускорению и может компенсировать силы инерции. Для положения тоже что и FF0 для скорости.
FF2 - умножается на вторую производную заданной величины. Для положения то же, что и FF1 для скорости. Для скорости обычно ставят в 0.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Всего понемногу (реанимация 4 axis гравера по стеклу)
А формула выглядит так
:
Плюс из абсолютного значения e(t) сразу вычитается значение pid.bias. (e(t) это pid.error).
