Лабораторная работа № х
Проверка максимальной частоты генерации шагов контроллером GRBL
Цель:
Измерить максимальную частоту генерации шагов с равномерным распределением импульсов.
Подтвердить гипотизу, что при увеличении активных осей в движении максимальная частота равномерных шагов снижается.
Приборы и материалы:
Arduino UNO с прошивкой GRBL 1.1h
Логический анализалор LA1008, софт Sigroc PulseView
Организация измерительного сенда:
GRBL подключен к компу с сендером. Драйвера и прочая периферия к контроллеру не подключается.
Входы логическаго онализатора подключены к выходам Step X,Y,Z
Ход работы:
На контроллере установим достаточно высокое ускорение, для сокращения времени разгона/торможения.
Параметры контроллера заданы следующим образом:
$100=400.000
$101=400.000
$102=400.000
$110=4100.000
$111=4100.000
$112=4100.000
$120=800.000
$121=800.000
$122=800.000
Таким образом, при скорости движения 4500 частота импульсов составит 30кГц ( измеренная частота 29917Гц)
зададим заведомо высокую максимальную скорость 6000мм/мин для вех осей.
1) на первом этапе найдем максимальную скорость без неравномерностей для 1 оси, исслежуем характер генерируемых шагов.
Скорость перемещения будем задавать подачей в комманде G1. Для гарантированного достижения максимальной скорости и репрезентативной выборки генерируемых сигналов пыбрано расстояние перемешения 200мм, что на выбранных скоростях дает около 3сек перемещения. Участки разгона и торможения составляют нколо 100мс.
При ревышении предела максимальной теоретической частоты в 30кГц контроллер зависает.
При частотах близких к максимальным проявляется дефект генерации шагов в виде периодического пропуска 1 импульса в последовательности. Период варьируется и зависит от близости к максимальному пределу и исходных данных.
Рис 1.

- Рис1. Пропуск импульса в последовательности на скорости 4500
С приближением к теоретическому пределу частота ишибок повышается. Варьирование дистанции перемещения на небольшую величину меняет частоту ошибок ( нет явной зависимости, видимо влеяет на ошибки округления в алгоритме)
При указанных условиях максимальная скорость перемещения для 1 оси составила 4400мм/мин - 29325Гц
2) Исследуем поведение контроллера при одновременном перемешении по нескольким осям
Для упрошения анализа установим для всех осей одинаковую максимальную скорость и будем задавать перемешение по нескольким осям на одинаковое расстояние.
Подачу для этих перемещений в команде G1 установим F10000, что заведомо больше максимальной линейной скорости при диагональном движении и не будет ограничивать скорость перемещения. Таким образом, контроллер будет генерировать для всех осей шаги с одинаковой частотой, соответствующей максимальной скорости. ( при разных максимальных скоростях для осей, контроллер будет устанавливать минимальную из скоростей осей, участвующих в перемещении)
Исследование показало, что при одновременнном движении нескольких осей, частота ошибок генерации шагов увеличивается.
Так для скорости 4400мм/мин и движении 2-х осей одновременно в последовательности импульсов появляются пропуски, а при движении 3-мя осями их частота увеличивается.

- Рис2. Осцилограмма на скорости 4400 для 3-х осей
Исследование показало, что при движении 2-х осей максимальная скорость без ошибок составила 4000мм/мин - 26631Гц
При движении 3-х осей с такой скоростью возникают редкие ошибки - 3 - 5 на интервал движения 200мм.
Максимальная скорость, для которой не зафиксировано ошибок для 3-х осей составила 3650мм/имн - 23548Гц
Как показывает анализ графиков, моменты фронтов и спадов импульсов для разных осей совпадают. При равно-скоростном движении по нескольким осям, пропуск импульса происходит на всех осях одновременно.
Из описанного поведения можно сделать вывод, что при возникновении не-гавномерности генерации импульсов не происходит раз-синхронизация траектории движения и не появляется ошибка позиционирования.
Не равномерная последовательность импульсов может негативко влеять на движение шаговых моторов и в некоторых случаях приводить к срыву движения мотора из-за резкого перепада ускорения. Особенно такому срыву подвержены моторы, работающие на скоростях, близких к предельным и без запаса по крутящему моменту.
Основываясь на полученных данных, можно рекомендовать для расчета максимальной частоты шагов 3-х осевого контроллера GRBL на базе процессоров AVR ( Arduino UNO/NANO, Mega 2560) использовать как референтное значение частоту 24кГц
Частота генерации шагов может быть расчитана по следующей формуле:
F=Feed/60*Steps
где F - частота в Гц
Feed - максимальная скорость перемещения оси в мм/мин
Steps - число шагов на 1мм перемещения
А вот и пациент нашей психушки