Цифровой фильтр для коррекции неравномерности импульсов Step

Контроллеры, драйверы, датчики, управляющие устройства.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

michael-yurov писал(а):К сожалению, оптимизация кода не работает, а она, как мне показалось, способна творить чудеса.
Это ошибочное мнение. В основном она помогает не заморачиваться по мелочам. Более-менее творить чудеса умеют некоторые узкозаточенные коммерческие компиляторы, но они стоят ДЕНЕГ.
michael-yurov писал(а):Так что, вероятно, придется использовать чип мощнее раза в 3, и раза в 4 дороже, чтобы возможности фильтра охватывали требования большинства пользователей.
Ещё немного экспериментов и ты придёшь к мнению, что проще не фильтровать неравномерный сигнал, а сразу сгенерить равномерный. :hehehe:
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

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

Сообщение aftaev »

UAVpilot писал(а):Ещё немного экспериментов и ты придёшь к мнению, что проще не фильтровать неравномерный сигнал, а сразу сгенерить равномерный.
еще немного экспериментов и вы с michael-yurov сбацаете шаговый драйвер с open source :hehehe:
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

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

Сообщение Сергей Саныч »

aftaev писал(а):еще немного экспериментов и вы с michael-yurov сбацаете шаговый драйвер с open source
Вот как раз опенсорс Михаил с самого начала не обещал ;)
Чудес не бывает. Бывают фокусы.
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

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

Сообщение aftaev »

Serg-tmn писал(а):Вот как раз опенсорс Михаил с самого начала не обещал
это для этой платы, а я про драйвер шаговиков :)
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11730
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4703
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

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

Сообщение michael-yurov »

UAVpilot писал(а):Ещё немного экспериментов и ты придёшь к мнению, что проще не фильтровать неравномерный сигнал, а сразу сгенерить равномерный.
Сгенерировать равномерный сигнал, конечно, проще, чем фильтровать то, что есть.
Но использование конечного устройства не проще для тех, кто использует Mach3 или LinuxCNC.
Многие пользователи по известным причинам вернулись к использованию LPT в Mach3 после того, как попользовались внешними контроллерами.
Я бы и сам предпочел бы такой фильтр внешнему контроллеру в связке с Mach3.
aftaev писал(а):еще немного экспериментов и вы с michael-yurov сбацаете шаговый драйвер с open source
Сложное это дело. Да много уже хороших и недорогих вариантов продается. Все равно дешевле самому не собрать, даже если был бы открытый проект.
Serg-tmn писал(а):Вот как раз опенсорс Михаил с самого начала не обещал
Ну, уж простите. Мне даже как-то неловко.
Но ведь я почти ничего не скрываю, и если кому-то хочется - он может немного напрячься и сделать аналогичное устройство,
а деньги собираюсь брать не за идею, а за то, что я не поленился и сделал,
и, надеюсь, смогу сделать действительно качественно, а это намного сложнее, чем просто сделать.

Разница в объеме работы для коммерческого продукта, и для самодельного - огромная.
Для самодельного варианта я бы просто Atmel бы взял помощнее, поставил бы по одной микросхеме на каждый канал, сделал бы интерфейсную платку на макетке, и в путь.
А если бы возникли проблемы с предельной частотой, или потерей шагов - решал бы их по ходу,
И с настройками бы не парился бы, и со скважностью импульсов и с разводкой плат, и с удобством подключения, и т.п.

И разница в итоге будет в том, что с бесплатным можно было бы поразвлекаться, ради интереса,
а с коммерческим - можно поставить на станок и работать, и быть уверенным в том, что эта штука ничего не испортит и не ухудшит, нигде лишнего не сгладит, шаги не пропустит, и не даст сбоев.
romanru1
Мастер
Сообщения: 584
Зарегистрирован: 22 фев 2013, 22:31
Репутация: 177
Откуда: Первоуральск
Контактная информация:

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

Сообщение romanru1 »

michael-yurov писал(а):Многие пользователи по известным причинам вернулись к использованию LPT в Mach3 после того, как попользовались внешними контроллерами.
Это по каким таким причинам ,позвольте полюбопытствовать.
— Мы месяц по Галактике «маму» попоём — и планета у нас в кармане.
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11730
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4703
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

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

Сообщение michael-yurov »

romanru1 писал(а):
michael-yurov писал(а):Многие пользователи по известным причинам вернулись к использованию LPT в Mach3 после того, как попользовались внешними контроллерами.
Это по каким таким причинам ,позвольте полюбопытствовать.
Ну, если говорить про Mach 3, то я не раз встречал сообщения об этом, в частности - на форуме purelogic.
А причины,..
Первая -, и самая главная - это проблема со значительной задержкой при нажатии паузы,
Вторая - проблемы с возобновлением обработки после того, как станок был перемещен в новую позицию в состоянии паузы.
Третья - проблемы с помехозащищенностью USB (особенно при отсутствии полноценной гальванической развязки меду контроллером и интерфейсной платой),
Четвертая - проблемы с подвисанием во время обработки, т.к. Mach3 не предоставляет приоритета плагину передающему данные контроллеру, и в случае тяжелой визуализации УП Mach3 не успевает вовремя отправлять данные, а в случае с LPT драйвером такого не происходит.
Пятая - жесткая привязка к конкретному софту, а в моем случае будет и минимальный, но все же выбор.
Шестая - отсутствие гарантий совместимости с новыми версиями программы. Разработчик Mach3 вот грозится Mach4 выпустить, с поддержкой S кривых изменения скорости (с трудом верится, конечно...).
Седьмая - зачастую - нестабильность работы внешних контроллеров (проблемы с пропуском шагов, потерей шагов при смене направления, сбои, потеря синхронизации координат с Mach3 и т.п.) По этой причине приходится тестировать разные прошивки. проверять, какие работают, а какие нет, какие прошивки с какими версиями Mach3 стабильно работают и т.п.

И еще - никто ведь не запрещает использовать аппаратный контроллер вместе с этим фильтром. Результат в ряде случаев будет лучше.
Например, NCStudio - достаточно грубо генерирует сигнал, хоть и стабильно, и максимальная частота сигнала - 47 кГц,
а с этим фильтром можно сделать сигнал намного более ровным, и поднять частоту сигнала для использования мелкого микрошага.
Микрошаг и мягкость работы станка влияют не только на скорость перемещений и звук работы, но и на продолжительность жизни механики, точность, и живучесть фрез, и, даже, на максимальную скорость фрезеровки в случае с тонкими фрезами.
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

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

Сообщение Сергей Саныч »

michael-yurov писал(а):Ну, уж простите. Мне даже как-то неловко.
Михаил, а что тут такого? Полагаю, у каждого, кто занимался хоть сколько-нибудь серьезными проектами, есть идеи и наработки, которые он не готов вот прямо сейчас выложить "на благо всего человечества". Ничего в этом зазорного не вижу.
Извини, если задел чем-то.
Чудес не бывает. Бывают фокусы.
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11730
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4703
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

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

Сообщение michael-yurov »

Serg-tmn писал(а):Извини, если задел чем-то.
Да я сам просто переживаю немного на эту тему.
А с другой стороны - мне какой-то стимул нужен, хоть и нереальный. Но, вдруг, и правда на этой штуке получится немного подзаработать? Мелочь, а приятно.

Вчера возился с моментом переключения сигнала Dir.
Переживаю, чтобы нигде не потерялось ни одного импульса, ни (фронта ни спада).

Но все же есть маленькая проблемка - фильтр может не дошагать на 1 импульс или перешагать на 1 импульс лишнего относительно требуемой позиции.
+/- 1 импульс относительно выходного сигнала (после умножения), а не входного. Проблема возникла из за снижения частоты петли сервоцикла с 10 до 4 кГц.

На максимальные частоты я еще эту штуку не тестировал, и пока не знаю, как это сделать.
Все что приходит в голову - это добавить лампочку чрезмерной загрузки процессора (например, чтобы загоралась при загрузке выше 80%);
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

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

Сообщение Сергей Саныч »

michael-yurov писал(а):фильтр может не дошагать на 1 импульс или перешагать на 1 импульс лишнего относительно требуемой позиции.
Если ошибка не накапливаемая, думаю, ничего страшного.
Чудес не бывает. Бывают фокусы.
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11730
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4703
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

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

Сообщение michael-yurov »

Serg-tmn писал(а):
michael-yurov писал(а):фильтр может не дошагать на 1 импульс или перешагать на 1 импульс лишнего относительно требуемой позиции.
Если ошибка не накапливаемая, думаю, ничего страшного.
Так нет конечно!
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11730
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4703
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

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

Сообщение michael-yurov »

Все доделал, кроме режима неизменной передачи сигнала.

Что-то производительности чипа оказалось все же маловато, придется заменять на более мощный.
На станке одновременно движение по нескольким осям не проверял,
Но, судя по всему, высоких частот Step без автоматической оптимизации кода на 24-мегагерцовом микроконтроллере добиться не получится.
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

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

Сообщение Сергей Саныч »

michael-yurov писал(а):высоких частот Step
Это сколько в герцах?
Чудес не бывает. Бывают фокусы.
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11730
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4703
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

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

Сообщение michael-yurov »

Serg-tmn писал(а):
michael-yurov писал(а):высоких частот Step
Это сколько в герцах?
А фиг его знает.
Судя по всему - около 650кГц на все каналы вместе взятые (входы и выходы), т.е. сумма всех частот.
Проверить пока не могу - нужно к станку подключать.
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11730
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4703
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

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

Сообщение michael-yurov »

Короче, жопа получилась. :?
При частоте входново сигнала 20 кГц и десятикратном умножении сигнала (т.е. 200 кГц на выходе), уже загорается лампочка перегрузки (90% загрузки процессора или более),
Если и дальше увеличивать частоту - процессор сначала пожертвует точностью расчета частот, а потом и вовсе может пропустить шаги (это будет заметно) или вообще - зависнуть (этот тоже сложно не заметить).

Так что с умножением чудес не произошло. Нужен более мощный, чип, а это значит - придется переразводить плату, т.к. у этой модели микроконтроллера нет более мощных собратьев с той же переферией и расположением выводов.
Прошивка получилась достаточно сложная, в первую очередь из за высокой точности расчетов и генераторов выходного сигнала.

Полноценно проверять все оси у меня сейчас нет времени, т.к. придется немного разобрать станок, а это - долго.
Так что я планирую сейчас вырезать несколько платок для тех, кому обещал, а уж вы - тестируйте.

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

Так что кому нужен фильтр LPT на серьезном чипе - ждите коммерческий вариант.
Последний раз редактировалось michael-yurov 27 июн 2013, 20:24, всего редактировалось 1 раз.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

Т.е. работает стабильно для входных частот до 20кГц и выходных до 200кГц?
Так этого должно хватить за глаза, или нет?

Делаем расчет, чтобы максимальная входная частота была 10кГц, а выходная 100 и получаем плавную работу движков, причем с запасом.
10кГц это до 5000 об/мин, куда больше-то? "Микрошаг" на входе нам сильно точности не прибавит, ИМХО вообще не стоит ориентироваться на повышение разрешения станка за счет микрошага - только более плавная работа...

Делай платку и получишь еще медальку :)
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11730
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4703
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

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

Сообщение michael-yurov »

Nick писал(а):Т.е. работает стабильно для входных частот до 20кГц и выходных до 200кГц?
Так этого должно хватить за глаза, или нет?
Нет, не так - я проверял только с одной осью, а если четыре оси работают одновременно, то для каждой достанется лишь по четверти от названного.

Еще попробовал с пятикратным умножением - получается 25 кГц (в сумме) на входе и 125 кГц на выходе (в сумме).

Странная какая-то зависимость, сейчас еще поэкспериментирую. :thinking:
Наверное, нужно исключить использование библиотек при проверке бита направления при счете входящих импульсов.
Последний раз редактировалось michael-yurov 27 июн 2013, 20:40, всего редактировалось 1 раз.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

А если просто сделать по плате на ось? Можно даже делать их на одной плате с перемычками, чтобы можно было отломать сколько надо.
Аватара пользователя
vovafed
Мастер
Сообщения: 1822
Зарегистрирован: 08 фев 2013, 16:19
Репутация: 325
Настоящее имя: Владимир
Откуда: башкортостан
Контактная информация:

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

Сообщение vovafed »

Nick писал(а):А если просто сделать по плате на ось?
тогда лучше 2 поставить на платку и пусть тянут по 2 канала
двухядерная будет :hehehe:
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11730
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4703
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

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

Сообщение michael-yurov »

Да тоже уже думал,
но проще с другим процессором сделать.
Закрыто

Вернуться в «Электроника»