Обсуждение:LinuxCNC Integrators Manual Глава IV - Файл INI

Материал из cnc-club
Перейти к навигации Перейти к поиску

Скормил текст из темы http://www.cnc-club.ru/forum/viewtopic.php?f=15&t=7200&p=171994#p171994 переводчику яндекса и подредактировал начало. Естественно с кучей отсебятины. У кого есть желание может привести текст в окончательный вид и опубликовать

[TRAJ] раздел содержит общие параметры для модуля планировщика движений.

  • )Способ планирования траектории :

ARC_BLEND_ENABLE = 1 Значение по умолчанию 1. Если задать 0,то планировщик движении использует параболические смешивания (1 сегмент смотреть вперед.) (??? Что будет если параметр не равен нулю? какие значения он может принимать?)

  • )Принудительное выключение параболического смешивания

ARC_BLEND_FALLBACK_ENABLE = 0 Значение по умолчанию 0. О - принудительное отключение не осуществляется. Используется если планировщик задаёт слишком большую скрость перемещения. )* Количество сегментов которые будут учитываться при предварительном планировании движения: ARC_BLEND_OPTIMIZATION_DEPTH = 50 - смотреть вперед глубина в ряде сегментов. Это значение можно увеличивать в пределах вычеслительных способностей компьютера. Вот формула, чтобы рассчитать, сколько глубины нужно при конкретных сервопериоде и скорости перемещения :

  1. n = v_max / (2.0 * a_max * t_c) # где: # n = оптимизация глубины
  2. v_max = max axis velocity (UU / сек)
  3. a_max = max ускорение оси (UU / сек)
  4. t_c = servo период (в секундах)

Так, машина с максимальной оси скорости 10 IPS, максимальное ускорение 100 IPS^2, и сервопривод период 0.001 сек потребуется:

10 / (2.0 * 100 * 0.001) = 50 сегменты, всегда достигать максимальной скорости вдоль быстрой оси.

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

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

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

  1. min_length ~= v_req * t_c #

где:

  1. v_req = желаемой скорости в UU / сек
  2. t_c = servo период (в секундах)

Если вы хотите, чтобы путешествовать вдоль пути в 1 IPS = 60 обр. / мин, и ваш серво период 0.001 сек, затем любой отрезков короче, чем min_length будет медленный путь вниз. Если вы задаете наивные CAM толерантности, чтобы вокруг этого мин Длина, чрезмерно короткие сегменты будут объединены вместе, чтобы устранить это узкое место. Конечно, установка слишком высокая толерантность означает большой путь отступления, так что вам придется играть с ним немного, чтобы найти хорошую ценность. Я бы начал на 1/2 min_length, затем по мере необходимости.

  • )

ARC_BLEND_GAP_CYCLES = 4, Как коротка предыдущего сегмента должны быть перед траектории planner использует это.

Часто, дуги смесь будет оставлять короткие отрезки между смесей. Поскольку геометрия должна быть круговой, мы не можем смесь через все строки, если следующий-чуть короче. Поскольку траектория планировщик должен коснуться каждого сегмента, по крайней мере, один раз, это означает, что очень крошечные сегменты, медленные вещи вниз значительно. Мой исправить, чтобы таким образом "использовать" короткий сегмент, сделав ее частью смеси дуги. Поскольку линия+смесь-это один сегмент, мы не должны замедлять ударить очень короткий сегмент. Скорее всего, вам не нужно трогать этот параметр.

  • )

ARC_BLEND_RAMP_FREQ = 20 - это частота среза для использования увеличили скорость. Увеличили скорость в данном случае просто означает постоянное ускорение на протяжении всего сегмента. Это менее оптимально, чем трапециевидного профиля скорости, с ускорением не развернуто. Однако, если сегмент является достаточно коротким, не хватает времени, чтобы ускорить многое, прежде чем мы попали в следующий сегмент. Напомним, в коротких отрезков из предыдущего примера. Поскольку они линии, нет поворотов, ускорения, так что мы свободно разгоняться до заданной величины частоты вращения. Однако, если эта линия находится между двумя дугами, потом он будет быстро замедляться, чтобы снова быть в пределах максимальной скорости следующего сегмента. Это означает, что мы имеем всплеск ускорения, затем всплеск торможения, вызывая большой рывок, за очень маленький прирост производительности. Этот параметр является способ устранить этот рывок на короткие сегменты. В принципе, если сегмент будет завершена в меньше времени, чем 1 / ARC_BLEND_RAMP_FREQ, мы не заморачиваться с трапецеидального профиля скорости в этом сегменте, и пользоваться постоянным ускорением. (Установка ARC_BLEND_RAMP_FREQ = 1000 эквивалентна всегда с помощью трапециевидной ускорение, если servo loop - 1 кГц). Вы можете охарактеризовать худшем случае потеря производительности путем сравнения скорости, что трапециевидный профиль достигает vs. рампы:

  1. v_ripple = a_max / (4.0 * f) #

где:

  1. v_ripple = Средняя скорость "потери" из-за ramping
  2. a_max = max ускорение оси # f = частота среза из INI

Для вышеупомянутых машина, пульсация на 20 Гц частота среза 100 / (4 * 20) = 1.25 IPS. Это кажется высокой, но имейте в виду, что это только наихудшие оценки. В реальности , трапециевидный профиль движения ограничена другими факторами, такими как нормальное ускорение или запрашиваемой скорости, так и фактические потери производительности должно быть гораздо меньше. Увеличение частоты среза можно выжать больше производительности, но сделать движение более грубой из-за ускорения разрывов. Значение в диапазоне от 20гц до 200гц должен быть разумным, чтобы начать.