Страница 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 писал(а):Прочитал. что блоки управления от этой реабины тоже имеют встроенный алгоритм умножения шагов.
Покажи, где? :o там такая древность, что по сравнению с ней 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
Днем получил посылку с осциллографом - и вот, наконец увидел, как работает моя штука:
1.png (3151 просмотр) <a class='original' href='./download/file.php?id=20510&sid=3633b04ecdd36eb16111582a5e58f741&mode=view' target=_blank>Загрузить оригинал (30.25 КБ)</a>
2.png (3151 просмотр) <a class='original' href='./download/file.php?id=20511&sid=3633b04ecdd36eb16111582a5e58f741&mode=view' target=_blank>Загрузить оригинал (31.04 КБ)</a>
6.png (3151 просмотр) <a class='original' href='./download/file.php?id=20512&sid=3633b04ecdd36eb16111582a5e58f741&mode=view' target=_blank>Загрузить оригинал (29.45 КБ)</a>
7.png (3151 просмотр) <a class='original' href='./download/file.php?id=20513&sid=3633b04ecdd36eb16111582a5e58f741&mode=view' target=_blank>Загрузить оригинал (28.34 КБ)</a>
8.png (3151 просмотр) <a class='original' href='./download/file.php?id=20514&sid=3633b04ecdd36eb16111582a5e58f741&mode=view' target=_blank>Загрузить оригинал (29.39 КБ)</a>
10.png (3151 просмотр) <a class='original' href='./download/file.php?id=20515&sid=3633b04ecdd36eb16111582a5e58f741&mode=view' target=_blank>Загрузить оригинал (17.77 КБ)</a>

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 В данном графике я надеюсь вымышленное условие требуемого ускорения или реальные? Если реальные то как это может выражаться в реальности.
4 (1).png (3043 просмотра) <a class='original' href='./download/file.php?id=20655&sid=3633b04ecdd36eb16111582a5e58f741&mode=view' target=_blank>Загрузить оригинал (76.86 КБ)</a>
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-кривые ускорения):
44.png (3120 просмотров) <a class='original' href='./download/file.php?id=20516&sid=3633b04ecdd36eb16111582a5e58f741&mode=view' target=_blank>Загрузить оригинал (62.73 КБ)</a>
(т.е. резких изменений ускорения нет, и нет провалов).
График пока не могу построить. Будет возможность - сделаю.

Ускорения вымышленные, но образованы они банальным провалом в последовательности импульсов.
На осциллограммах видны аналогичные случаи.
asutpka писал(а):2 Если я правильно понял Шаговые импульсы считаются и фиксируются с частотой сервоцикла - 4kHz.
Сейчас уже частота пересчета - 10 кГц.
asutpka писал(а):Как реагирует система если в одном цикле подсчёта появятся как "левые" импульсы так и "правые"
Реагирует одинаково. Так же, как отреагирует водитель, если на протяжении 50 метров установить десяток знаков ограничения скорости с разными значениями.
Материться только не умеет...
Импульсов то левых там нет... Т.е. их количество в итоге - верное, но вот частота может сильно скакать.
asutpka писал(а):3 В скриншотах осцилографа в нижнем правом углу продолжительность времени. Чему оно равно - клетке? всему экрану?
Оно равно ширине больших клеток (из точек).
asutpka писал(а):4 Что кроме корявости оттолкнуло решить эту задачу с помощью N процессоров где N = число осей? У вас есть связь вычислений динамики между осями?
В данный момент один процессор обрабатывает 2 оси. Больше - не позволяют аппаратные возможности. Связи между осями нет, кроме задания начальных параметров степени фильтрации. Оси обрабатываются совершенно идентично, и это позволило исключить взаимосвязь в расчетах.
asutpka писал(а):5 Если не секрет Какова длина "сэмпла" входов в сервоциклах?
Не понял вопрос.

Re: Фильтр для сглаживания неравномерности импульсов Step

Добавлено: 05 ноя 2013, 17:26
mhael
michael-yurov писал(а): ускорение меняется примерно так
Может все-таки скорость?