Страница 16 из 42
Re: Фильтр для сглаживания неравномерности импульсов Step
Добавлено: 21 окт 2013, 10:16
michael-yurov
aftaev писал(а):и в чем причина была что каждая плата по своему работала?
А фиг его знает, наверное - некачественная пайка или фрезеровка.
Скорее всего - где-то были косяки самой платы. Да и тяжело паять такие мелкие платы без маски.
В этот раз планирую делать платы с мелкими дорожками попроще, а потом их втыкать, как модули в большую плату.
Да и вообще - хочу заказать изготовление.
Плюс ко всему - на тот момент я не разобрался толком с системой тактирования. В этот раз планирую ее корректно настроить.
Re: Фильтр для сглаживания неравномерности импульсов Step
Добавлено: 21 окт 2013, 21:23
michael-yurov
Сегодня еще немного поэкспериментировал.
Заменил целочисленные расчеты скорости на числа с плавающей точкой. Стало еще чуть чуть лучше на самых низких частотах.
Чуда, конечно, не произошло, и если исходный сигнал очень редкий (несколько герц), то умноженный (для более мелкого микрошага) сигнал на выходе генерируется волнами (группами с количеством импульсов равным коэффициенту умножения). С этим, наверное уже ничего не сделать.
В принципе, прошивка уже работоспособна на уровне законченного устройства, но я еще буду все тщательно проверять, тестировать алгоритм в разных условиях, подберу несколько вариантов настройки, и т.п.
Пробовал, установить в Mach3 ускорение 5000 мм/сек². Станок работал без срывов и потери координат.
Максимальная скорость станка получилась точно такая же, как с килофлопом.
Re: Фильтр для сглаживания неравномерности импульсов Step
Добавлено: 21 окт 2013, 22:23
Nick
michael-yurov писал(а):С этим, наверное уже ничего не сделать.
Ага, это уже врядли получится исправить... Или придется сильно сглаживать траекторию... что тоже не желательно...
Re: Фильтр для сглаживания неравномерности импульсов Step
Добавлено: 22 окт 2013, 04:38
michael-yurov
Nick писал(а):Или придется сильно сглаживать траекторию...
Я этого не могу сделать, т.к. "время запаздывания" должно быть постоянным (с минимальными отклонениями), иначе не получится достаточно точно следовать траектории, а в этом и была основная идея - от
фильтровать сигнал так, чтобы это негативно не отразилось на точности работы станка.
Re: Фильтр для сглаживания неравномерности импульсов Step
Добавлено: 22 окт 2013, 04:53
Сергей Саныч
michael-yurov писал(а):С этим, наверное уже ничего не сделать.
А зачем? С частотами ниже нескольких сотен герц, ПМСМ, вообще заморачиваться не стоит - пусть при умножении импульсы идут пачками. Проблемы-то связанные с неравномерностью шага возникают только на высоких частотах.
Re: Фильтр для сглаживания неравномерности импульсов Step
Добавлено: 22 окт 2013, 05:04
michael-yurov
Serg-tmn писал(а):А зачем? С частотами ниже нескольких сотен герц, ПМСМ, вообще заморачиваться не стоит - пусть при умножении импульсы идут пачками. Проблемы-то связанные с неравномерностью шага возникают только на высоких частотах.
Да там уже после 100 Гц уже почти идеально становится.
А на высоких частотах все отлично.
Сейчас еще остается вопрос на тему скважности импульсов.
Скважность я могу сделать любую,
но из за того, что верхняя частота не ограничена, я не могу установить фиксированную длительность импульсов, поэтому приходится уменьшать длительность импульсов пропорционально росту частоты.
Наверное оставлю 25% / 75%.
И выбор активного фронта тоже делать не буду, а оставлю по умолчанию нарастающий фронт для подсчета импульсов на входе (LinuxCNC и Mach3 все равно будут корректно работать при любой настройке), а на выходе смена сигнала Dir только при низком уровне выходного сигнала, так что не имеет значения, по какому фронту будут работать драйверы ШД.
Re: Фильтр для сглаживания неравномерности импульсов Step
Добавлено: 22 окт 2013, 09:04
Сергей Саныч
michael-yurov писал(а):а на выходе смена сигнала Dir только при низком уровне выходного сигнала, так что не имеет значения, по какому фронту будут работать драйверы ШД.
Вот это, кстати, не очевидно. Был у меня (и есть до сих пор, никак не сдохнет
) блок управления от Реабина. И долго я с ним имел безответную любоффь (на вырезании одной и той же детали в форме буквы D появлялось "сползание" по одной из координат). Пока не выяснил, что переключение направления при низком уровне сигнала Step вызывало лишний шаг. Смена полярности Step сняла проблему.
Re: Фильтр для сглаживания неравномерности импульсов Step
Добавлено: 22 окт 2013, 09:20
michael-yurov
Serg-tmn писал(а):michael-yurov писал(а):а на выходе смена сигнала Dir только при низком уровне выходного сигнала, так что не имеет значения, по какому фронту будут работать драйверы ШД.
Вот это, кстати, не очевидно. Был у меня (и есть до сих пор, никак не сдохнет
) блок управления от Реабина. И долго я с ним имел безответную любоффь (на вырезании одной и той же детали в форме буквы D появлялось "сползание" по одной из координат). Пока не выяснил, что переключение направления при низком уровне сигнала Step вызывало лишний шаг. Смена полярности Step сняла проблему.
У меня есть пауза после последнего импульса Step перед сменой направления, и небольшая пауза перед последующим импульсом.
Если менять сигнал направления всегда только при высоком или только при низком уровне, и выдерживать минимальные паузы - проблем не будет.
Алгоритм довольно сложный и реализовать его без ошибок не так то просто.
Драйвер может работать по возрастающим фронтам или по спадающим. Должна быть небольшая пауза между активным фронтом сигнала Step и моментом смены сигнала Dir. Видимо, в этой реабине условие не выполнялось.
Забавно. Прочитал. что блоки управления от этой реабины тоже имеют встроенный алгоритм умножения шагов. Видимо разработчики тоже, как и я решили сделать хитрую штуку, но не справились с поставленной задачей.
Re: Фильтр для сглаживания неравномерности импульсов Step
Добавлено: 22 окт 2013, 10:51
Сергей Саныч
michael-yurov писал(а):Если менять сигнал направления всегда только при высоком или только при низком уровне, и выдерживать минимальные паузы - проблем не будет.
Это обеспечивал TurboCNC. Паузы были. Паразитный шаг получался именно
в момент изменения состояния сигнала Dir. А Step все время был в низком уровне. Обнаружить удалось, только перебирая вручную биты регистров LPT в досовском отладчике.
Это я к тому, что возможность инвертировать выходной сигнал Step - она не лишняя.
michael-yurov писал(а):Прочитал. что блоки управления от этой реабины тоже имеют встроенный алгоритм умножения шагов.
Покажи, где?
там такая древность, что по сравнению с ней L297+L298 - вершина хайтека. Во всяком случае, выходные каскады сделаны на дискретных транзисторах.
Re: Фильтр для сглаживания неравномерности импульсов Step
Добавлено: 22 окт 2013, 13:52
michael-yurov
Serg-tmn писал(а):Покажи, где?
Вот, открыл первый попавшийся блок управления:
http://reabin.ru/data/125-04m1.html
Читай второй пункт.
Если контроллер воспринимает момент смены направления, как шаг, как же я могу с таким бороться? Это уже серьезные проблемы у блока управления.
Я все же не буду делать такую настройку, т.к. это усложнит алгоритм и возможны человеческие ошибки с моей стороны. Лучше уж тогда просто логическим элементом менять полярность выхода, или подключить вход Step не между нолем и выходом, а между +5В и выходом.
Re: Фильтр для сглаживания неравномерности импульсов Step
Добавлено: 22 окт 2013, 14:31
Сергей Саныч
michael-yurov писал(а):Читай второй пункт.
не, у меня не такой. БУ-03 (без М1). Это едва ли не первый экземпляр их БУ для станков с ЧПУ (буквально). Год то ли 2005, то ли 2006. Работает только в режиме полушага.
Может, они и вправду с тех пор неплохо продвинулись.
michael-yurov писал(а):Если контроллер воспринимает момент смены направления, как шаг, как же я могу с таким бороться?
Если при смене направления Step находится в 1, паразитных шагов нет.
Re: Фильтр для сглаживания неравномерности импульсов Step
Добавлено: 01 ноя 2013, 20:49
michael-yurov
Осталось небольшое видео после последних тестов (снимал не для форума).
Если, вдруг кому интересно - выкладываю:
Голову не сверните - станок на боку стоит.
https://www.youtube.com/watch?v=_wGftWeLhKo
В
фильтре включено умножение частоты в 20 раз, микрошаг драйверов - 1/48, источник сигнала - Mach3 LPT.
Конкретные скорости не скажу, т.к. уже не помню, да и особой роли это не играет.
Пока работу над
фильтром пришлось остановить на неопределенное время по материальным причинам.
Re: Фильтр для сглаживания неравномерности импульсов Step
Добавлено: 05 ноя 2013, 15:48
michael-yurov
Днем получил посылку с осциллографом - и вот, наконец увидел, как работает моя штука:
Re: Фильтр для сглаживания неравномерности импульсов Step
Добавлено: 05 ноя 2013, 16:12
Сергей Саныч
А посчитать количество входных и выходных импульсов пробовал? (программно, надеюсь твой осциллограф умеет выводить данные не только в виде картинок).
Re: Фильтр для сглаживания неравномерности импульсов Step
Добавлено: 05 ноя 2013, 16:18
michael-yurov
Serg-tmn писал(а):А посчитать количество входных и выходных импульсов пробовал? (программно, надеюсь твой осциллограф умеет выводить данные не только в виде картинок).
Ну он в файл сохраняет, частоту измеряет... Но как посчитать с его помощью - не знаю.
Вручную считал - ошибок нет.
Станком тоже долго ездил туда/сюда, в итоге - вернулся точно в ноль.
Сейчас прошивка совсем другая.
Совершенно новый алгоритм смены частоты (судя по осциллограммам - работает идеально? за что огромное благодарность Денису Железнякову).
На последней картинке видно, как плавно меняется частота, при этом она меняется во много раз чаще частоты импульсов.
Новый алгоритм смены направления,
И аппаратный подсчет входящих и исходящих импульсов без вмешательства программы (раньше я считал вызывая прерывания).
Re: Фильтр для сглаживания неравномерности импульсов Step
Добавлено: 05 ноя 2013, 16:31
Сергей Саныч
michael-yurov писал(а):Но как посчитать с его помощью - не знаю.
Если сохраняет в текстовый файл - нетрудно перевести в таблицу и посчитать тем же экселем. я твой первый девайс так и анализировал.
Re: Фильтр для сглаживания неравномерности импульсов Step
Добавлено: 05 ноя 2013, 16:43
asutpka
С 21 10 этого года в очередной раз перечитал тему 2 раза. Работа проведена обалденная- я в восхищении. Появилась возможность наконец внятно сформулировать вопрос - попытаюсь
1 В данном графике я надеюсь вымышленное условие требуемого ускорения или реальные? Если реальные то как это может выражаться в реальности.
2 Если я правильно понял Шаговые импульсы считаются и фиксируются с частотой сервоцикла - 4kHz. Как реагирует система если в одном цикле подсчёта появятся как "левые" импульсы так и "правые" . Я бы нашел их разность знак разности определил бы как направление , то есть от
фильтровал бы такой скачёк ускорения. А как вы решили данную ситуацию?
3 В скриншотах осцилографа в нижнем правом углу продолжительность времени. Чему оно равно - клетке? всему экрану?
4 Что кроме корявости оттолкнуло решить эту задачу с помощью N процессоров где N = число осей? У вас есть связь вычислений динамики между осями?
5 Если не секрет Какова длина "сэмпла" входов выраженная в сервоциклах применяющихся при расчётах? Или я неверно понял логику записи импульсов?
6 Не понял целесообразность выдержки скважности импульсов. Это побочный продукт программирования или "художественный замысел"? Чем не угодило постоянное время импульса STEP?
Re: Фильтр для сглаживания неравномерности импульсов Step
Добавлено: 05 ноя 2013, 16:45
michael-yurov
Serg-tmn писал(а):michael-yurov писал(а):Но как посчитать с его помощью - не знаю.
Если сохраняет в текстовый файл - нетрудно перевести в таблицу и посчитать тем же экселем. я твой первый девайс так и анализировал.
Я сейчас за количество импульсов не переживаю.
Важнее, чтобы он их генерировал корректно, без всяких огрызков (чрезмерно коротких импульсов),
И чтобы смена направления была правильной (осциллограмму не сохранил, но, вроде бы все отлично и с этим делом).
Сейчас занят тем, что придумываю и развожу интерфейсную плату (подбираю компоненты для гальванической развязки, думаю над сторожевым таймером, хочу сделать цифровой преобразователь ШИМ -> напряжение, на 12 битном ЦАП и ОУ).
Довольно дорогая плата получается... но и плохо делать тоже нет желания.
Re: Фильтр для сглаживания неравномерности импульсов Step
Добавлено: 05 ноя 2013, 17:03
michael-yurov
asutpka писал(а):1 В данном графике я надеюсь вымышленное условие требуемого ускорения или реальные? Если реальные то как это может выражаться в реальности.
Этот график уже не актуален. Сейчас логика работы изменилась. Сейчас после
фильтрации всплеска практически нет, а ускорение меняется примерно так (кстати, заодно, получились S-кривые ускорения):
(т.е. резких изменений ускорения нет, и нет провалов).
График пока не могу построить. Будет возможность - сделаю.
Ускорения вымышленные, но образованы они банальным провалом в последовательности импульсов.
На осциллограммах видны аналогичные случаи.
asutpka писал(а):2 Если я правильно понял Шаговые импульсы считаются и фиксируются с частотой сервоцикла - 4kHz.
Сейчас уже частота пересчета - 10 кГц.
asutpka писал(а):Как реагирует система если в одном цикле подсчёта появятся как "левые" импульсы так и "правые"
Реагирует одинаково. Так же, как отреагирует водитель, если на протяжении 50 метров установить десяток знаков ограничения скорости с разными значениями.
Материться только не умеет...
Импульсов то левых там нет... Т.е. их количество в итоге - верное, но вот частота может сильно скакать.
asutpka писал(а):3 В скриншотах осцилографа в нижнем правом углу продолжительность времени. Чему оно равно - клетке? всему экрану?
Оно равно ширине больших клеток (из точек).
asutpka писал(а):4 Что кроме корявости оттолкнуло решить эту задачу с помощью N процессоров где N = число осей? У вас есть связь вычислений динамики между осями?
В данный момент один процессор обрабатывает 2 оси. Больше - не позволяют аппаратные возможности. Связи между осями нет, кроме задания начальных параметров степени
фильтрации. Оси обрабатываются совершенно идентично, и это позволило исключить взаимосвязь в расчетах.
asutpka писал(а):5 Если не секрет Какова длина "сэмпла" входов в сервоциклах?
Не понял вопрос.
Re: Фильтр для сглаживания неравномерности импульсов Step
Добавлено: 05 ноя 2013, 17:26
mhael
michael-yurov писал(а): ускорение меняется примерно так
Может все-таки скорость?