Настройка обхода углов (Trajectory Planner Corner Rounding)
Планировщик KMotionCNC содержит два параметра (Facet Angle и Corner Tolerance), которые используются для сглаживания траектории построенной на линейных сегментах G-кода. Ниже показано сглаживание 2D-пути, но оно применяется и к 3D-траектории. Некоторые простые CAD-системы не поддерживают дуги, поэтому заменяют их множеством отрезков. Если угол между гранями (Facet Angle) исходного G-кода меньше заданного значения, траектория будет разбита на "маленькие" участки и пройдена без остановки. Новые отрезки траектории будут располагаться вдоль дуги, максимальное отклонение не будет больше углового допуска (Corner Tolerance) или более 1/2 от длины сегмента. Если использование функции обхода углов не требуется, Corner Tolerance должен быть установлен в ноль.


Ниже показан пример траектории, где нижняя правая дуга образована 30 отрезками. Обычно в G-коде указывается простая дуга, но для проверки она создана с 30 углами в 3 градуса, образующими поворот на 90 градусов. Ниже проведены тесты, имитирующие достаточно высокую производительность системы с ускорением 30 дюймов/сек2. Используемый G-код можно загрузить здесь.

Обратите внимание, что обведенная область пути выглядит сглаженной, но при приближении, как показано ниже, углы градиента по 3 градуса едва заметны. Это разрешение обычно используется для обеспечения достаточно плавного пути без увеличения размера файла.

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

Чтобы подробно увидеть улучшение, движение оси X было зафиксировано в реальном времени (частота дискретизации 180мкс) и выведено на график. Так же построены графики скорости и ускорения.
Первые графики показаны без использования функции обхода углов.
Обратите внимание, что график скорости имеет неровную форму.



Теперь изменим настройки планировщика траектории на показанные ниже. Обратите внимание, что на графиках ниже изменение скорости стало значительно более плавным, а выбросы толчка (Jerk) уменшились.




Для сглаживания движения можно использовать дополнительную функцию KFLOP. Фильтр нижних частот может быть применен к выходу скоординированного пути.
Установив коэффициент KLP в KFLOP фильтр низких частот будет применяться ко всем осям скоординированного движения. В настоящее время для установки этого глобального параметра необходимо использовать С программу.
Чтобы вычислить подходящий коэффициент времени Tau в секундах, используйте формулу KLP = exp (-TIMEBASE / Tau), показанную ниже
#include "KMotionDef.h"
main()
{
double Tau = 0.001; // seconds for Low Pass Filter Time
Constant
KLP = exp(-TIMEBASE/Tau);
printf("Tau=%f KLP=%f\n",Tau,KLP);
}
Обратите внимание, что графики скорости и ускорения становятся еще более плавными. Использовалась постоянная времени малого времени Tau = 1 миллисекунда.



Недостатком, связанным с фильтрацией нижних частот, является потенциальное отставание в командных позициях, которое может вызывать небольшие ошибки пути. Графики, показанные ниже, показывают, что для большинства систем значение фильтра нижних частот 1мс будет незначительным. Ниже показан почти худший случай - 90 градусов с максимальным замедлением по оси X с последующим максимальным ускорением на оси Y.
Первый график без фильтрации нижних частот. Обратите внимание на совершенно квадратный угол. Частота дискретизаии графика 180 мкс.

В приведенном ниже примере 1 миллисекунда фильтрации с ошибкой пути ~ 0,01mil (0,25мкм)

В приведенном ниже примере используется фильтрация с 3 миллисекундами с ошибкой пути ~ 0,1 мил (2,5мкм)

Поскольку сглаживание нижних частот вводит небольшую задержку позиции, самый конец сглаженного пути не будет завершен при завершении скоординированного пути. Для завершения пути конечное положение и скорость каждой из скоординированных осей используются для вычисления кубического сплайна для завершения последнего малого движения. Кубический сплайн позволяет поддерживать стабильную скорость от конца сглаженного пути до конечного положения таким образом, что скорость также достигает нуля в целевом положении. Продолжительность времени кубического сплайна, установленного в 2xTau фильтра нижних частот, обеспечивает относительно постоянное замедление до цели.
