Всего понемногу (реанимация 4 axis гравера по стеклу)

Фрезерные и гравировальные станки для обработки мягких материалов (дерево, пластики, мягкие металлы).
Аватара пользователя
NightV
Почётный участник
Почётный участник
Сообщения: 6610
Зарегистрирован: 30 дек 2011, 09:14
Репутация: 2279
Настоящее имя: Владимир Айрапетян
Откуда: Israel
Контактная информация:

Re: Всего понемногу (реанимация 4 axis гравера по стеклу)

Сообщение NightV »

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

Re: Всего понемногу (реанимация 4 axis гравера по стеклу)

Сообщение NightV »

после войны с Х потом еще Y настраивать... там передача через ремень такая-же но стол весом с пол тонны :D чувствую если не осилю принципы ПИД на Х то с Y одно из двух.. или я всетаки вьеду КАК настраивать... или стол вьедет в меня :hehehe:
хотя ссылочка от Lexxa довольно занимательна ;) вчитываюсь перед завтрашним "турниром"
Всё просто! если знаешь КАК!
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Всего понемногу (реанимация 4 axis гравера по стеклу)

Сообщение Nick »

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.

NightV писал(а):вот я млин лопух промучился целый вечер.. на малых перемещения (0.001 - 1мм) бегает, выше срывается при торможении.... и оказывается начал со слишком малых велечин ferror 0.1 и min_ferror 0.01 на сайте linuxcnc вроде ставят ferror 1
ferror - это максимальная ошибка следования траектории. Вообще мне кажется странным значения ferror равным 1 (это по идее 1 мм). Хотя, учитывая вес твоего станка и то, что ты его пытаешься гонять на больших ускорениях (за счет pid) это можно понять.
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 гравера по стеклу)

Сообщение Lexxa »

Ferror работает на всех скоростях?
Можно ли отключить ferror например на быстром ходу, потому что при обработке отклонение от траектории на 1 мм это ни в какие ворота не лезет.
Поскольку например алюминий можно обрабатывать достаточно быстро.

По идее min_ferror надо бы ставить меньше чем дискрет перемещения, т.е. в случае пром. станков это хотябы 5 мкм.
:bender:
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Всего понемногу (реанимация 4 axis гравера по стеклу)

Сообщение Nick »

Lexxa писал(а):Можно ли отключить ferror например на быстром ходу, потому что при обработке отклонение от траектории на 1 мм это ни в какие ворота не лезет.
На быстром ходу в смысле G0?
Lexxa писал(а):По идее min_ferror надо бы ставить меньше чем дискрет перемещения, т.е. в случае пром. станков это хотябы 5 мкм.
Нет. Наоборот больше, т.е. если дискретность станка 5мкм, он не сможет следовать траектории точнее, чем 5 мкм. В принципе, ferror не может быть очень маленьким, каким бы не был станок, у него все равно будут вибрации, и прочие прелести. Суть настройки PID и выбора скорости резания - свести значение отклонения от траектории к минимальным значениям. Большая скорость = большие ускорения на резких поворотах = либо отклонения от траетории, либо замедления = меньшая скорость.
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Всего понемногу (реанимация 4 axis гравера по стеклу)

Сообщение Lexxa »

Понятно, ну например G0 или при ручных перемещениях
:bender:
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Всего понемногу (реанимация 4 axis гравера по стеклу)

Сообщение Nick »

Хм.... наверное можно поменять его при в параметре оси через mux2, на вход подать значение halui ручного режима. Но вообще лучше просто сделать по-больше ferror.

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

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

Изменить реальное значение отклонения от траектории можно только изменениями скорости (или других параметров) обработки или настройки железа станка.
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Всего понемногу (реанимация 4 axis гравера по стеклу)

Сообщение Lexxa »

Nick писал(а):EMC2 не учитывает его значение при планировке траектории
тогда вопросов нет к ferror, непонятно только зачем оно вообще нужно, но как говорится если на скорость не влияет, то...
:bender:
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Всего понемногу (реанимация 4 axis гравера по стеклу)

Сообщение Nick »

Нужно, чтобы при возникновении нештатной ситуации станок остановился, например фреза стукнулась в материал, или с движком что-то не так, или задан такой режим, что станок не справился. Или ключ забыл с детали убрать :freak: .
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Всего понемногу (реанимация 4 axis гравера по стеклу)

Сообщение Lexxa »

спасиб)
:bender:
Аватара пользователя
NightV
Почётный участник
Почётный участник
Сообщения: 6610
Зарегистрирован: 30 дек 2011, 09:14
Репутация: 2279
Настоящее имя: Владимир Айрапетян
Откуда: Israel
Контактная информация:

Re: Всего понемногу (реанимация 4 axis гравера по стеклу)

Сообщение NightV »

таак... дело сдвинулось с места, получилось настроить оси X Y до значений ferror 0.007 в пике, на любых скоростях и любых перемещениях, выше 0.007 не поднимается. сегодня помучаю Z и A ;)
Всё просто! если знаешь КАК!
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Всего понемногу (реанимация 4 axis гравера по стеклу)

Сообщение Lexxa »

Методом тыка? Мануал оказался полезным?
:bender:
Аватара пользователя
NightV
Почётный участник
Почётный участник
Сообщения: 6610
Зарегистрирован: 30 дек 2011, 09:14
Репутация: 2279
Настоящее имя: Владимир Айрапетян
Откуда: Israel
Контактная информация:

Re: Всего понемногу (реанимация 4 axis гравера по стеклу)

Сообщение NightV »

мануал всегда полезен если что-то непонятно :) но и без халсцилоскопа никуда, очень еще оказался полезным параметр FF1 чтобы сгладить ferrror,
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 гравера по стеклу)

Сообщение NightV »

вспомнил фразу которая когдато (мягко выражаясь.. так-как прозвучало в тему) мне очень понравилась ( до коликов :hehehe: ) "Read The FuХХing Manual"
в нашем случае можно перевести так "читай, читай... много блин читай" :hehehe: и делай выводы из прочтеного...
хатя обидно, ПИД настраивать же не каждый день и даже не раз в пару месяцев, а когда млин понадобится следующий раз то это будет очень не скоро, и уже успееш все млин забыть что и как :?
и будет опять "читай, читай... много блин читай" :problem:
Всё просто! если знаешь КАК!
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Всего понемногу (реанимация 4 axis гравера по стеклу)

Сообщение Nick »

NightV писал(а):но что самое интересное настройки PID на осях получились разные, движки и драйвы одинаковые, висят на осях однинаково, разница лиш в вессе что они тягают.
Так и должно быть. Системы управляемые pid разные = параметры должны быть разными. Значит все правильно сделал :). Вот если было бы наоборот - тогда надо было бы задуматься :hehehe:.
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Всего понемногу (реанимация 4 axis гравера по стеклу)

Сообщение Lexxa »

Да, может мы тут накидаем како-нить более менее обобщенный мануальчик, как настраивать в ЕМС этот ПИД.
А то реально пока второй раз придется, 10 раз свё забудется. Я поэтому в своей ветке более менее подробно пишу всё))
Потому что приходишь на работу и уже не помнится как там и что по соединениям и схеме.
Днем я удаленно копаюсь, а вечером за компом.
:bender:
Аватара пользователя
NightV
Почётный участник
Почётный участник
Сообщения: 6610
Зарегистрирован: 30 дек 2011, 09:14
Репутация: 2279
Настоящее имя: Владимир Айрапетян
Откуда: Israel
Контактная информация:

Re: Всего понемногу (реанимация 4 axis гравера по стеклу)

Сообщение NightV »

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

сегодня еще посижу с X Y.. есть пики до 0.007 при разгоне и торможении, если получится от них ихбавится вообще будет шоколад
примерно как здесь

Изображение

вот что про этот скрин пишут
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.
вот какраз с FF2 сильно не ковырялся, и по ходу именно он атвечает за ускорение и торможение :hehehe:
Всё просто! если знаешь КАК!
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Всего понемногу (реанимация 4 axis гравера по стеклу)

Сообщение Lexxa »

OUTPUT_SCALE - масштаб так сказать. Отношение одного оборта енкодера к единице перемещения стола. Грубо говоря на сколько переедет стол за один оборот энкодера.
MAX_OUTPUT - максимальная амплитуза Uзадания. Например если ы хочешь не +-10В, а +-5.
BIAS - смещение. Это добавление постоянной составляющей в Uзадания. Например если ты её укажешь в 1В, то вместо 3В на выходе будешь иметь 3+1, или 2В, если укжешь смещение отрицательным. Эту штуку можно использовать как тормоз оси Z, если она под своей тяжестью ползет вниз.
DEADBAND насколько я понял это люфт органов перемещения.

FF0 это вроде бы параметр, похожий на расстояние. Не ясно на какое расстояние.
FF1 это скорось прохождения этого расстояния - первая производная от FF0.
FF2 - вторая производная от FF2 - ускорение.
Не ясно что за расстояние, и скорость и ускорение чего.
Может скорость наростания Uзадания?

Формулу бы найти по которой оно форимируется, хотя бы обобщенную.
:bender:
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Всего понемногу (реанимация 4 axis гравера по стеклу)

Сообщение Nick »

Lexxa писал(а):DEADBAND насколько я понял это люфт органов перемещения.
Это "люфт ошибки". Т.е. если pid.error по модулю меньше DEADBAND, то pid.error будет считаться 0 и пид не будет стараться компенсировать этот люфт.
Его значение в любом случае должно быть немного больше половины деления энкодера, иначе пид никогда не успокоится :).
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 гравера по стеклу)

Сообщение Nick »

А формула выглядит так :hehehe: :
emc2 PID formula.png (3794 просмотра) <a class='original' href='./download/file.php?id=3765&mode=view' target=_blank>Загрузить оригинал (16.61 КБ)</a>
Плюс из абсолютного значения e(t) сразу вычитается значение pid.bias. (e(t) это pid.error).
В формате OpenOffice (для просмотра содержимого нажмите на ссылку)
pid.out(t) = Pe(t) + I int from{0} to{t} e(t)dt + D{{de(t)} over {dt} } + FF0 pid.cmd(t) + FF1 {d pid.cmd(t)} over {dt} + FF2 {d^2 pid.cmd(t)} over {d^2 t} + pid.bias
Ответить

Вернуться в «Фрезерные станки по дереву и пластикам, гравировальные станки, роутеры»