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

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

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

Сообщение Nick »

Ахренеть! :good:!
nik1
Мастер
Сообщения: 8408
Зарегистрирован: 02 окт 2012, 07:37
Репутация: 3629
Откуда: Красногорск
Контактная информация:

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

Сообщение nik1 »

Понял
Impartial
Мастер
Сообщения: 953
Зарегистрирован: 23 фев 2011, 01:50
Репутация: 36
Контактная информация:

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

Сообщение Impartial »

michael-yurov писал(а):Ну, как же хватит с головой? Если взять максимальную частоту таймера, например, 500 кГц,.. то ближайшая меньшая возможная частота будет уже 250 кГц, а следующая - 125 кГц, и т.п.
Почему 500 кгц? 24мгц.
Давай посчитаем. При максимальной частоте степ 200кгц за период сервоцикла может пройти максимум 200(1мс) или 400(2мс) импульсов.
Но измеряем не количество, а период. Т.е. За 5мкс получаем наихудшудшее разрешение 5*24 - 120 импульсов в счетчике.
И нужно учесть, что за сервоцикл приращение периода не может увеличится больше величины заданной предельным ускорением в системе.
Если это произошло, то это ошибка.
Поэтому берем отсчеты периодов, записываем в фифо память и вычисляем на основе этого скорость и ускорение.
Неравномерность сигналов степ будет давать скачки вычисленной скорости, а соответственно и ускорений.
Ставим на ускорение фильтр нижних частот и преобразуем обратно в скорость. Скорость подаем на ПИД и генерируем шаги.
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11730
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4703
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

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

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

Ускорение системы не влияет на результат работы - это одна из хитростей, что фильтр будет корректно работать с любыми ускорениями (если оно постоянно в течении выполнения УП).
Но, конечно, он наиболее адекватен в обычном диапазоне (от 0,001 g до 0,5 g).

И еще, про четыре канала в таймере - все равно не получится генерировать одним таймером 4 разные частоты.

В общем - я понял, что можно немного снизить требования к фильтру и больше доверившись драйверу LPT - увеличить быстродействие прошивки.
Но я полагаю, что Mach3 может спокойно подвиснуть на время значительно большее одного сервоцикла, и тогда генерация низких частот (около 0,5 - 1 кГц) может сильно пострадать.

В общем я уже не хочу переделывать программу коренным образом, т.к. она написана и работает. А увеличение стоимости устройства на 100 руб (из за более дорогого чипа) ни на что не повлияет.

По большому счету у меня примерно так все и работает,
Только период сервоцикла - 0,25 мс, реакция на изменение входящей частоты практически мгновенная,
Но самое сложное из всего в этой штуке (если не считать изучения STM32 с нуля) это адаптация алгоритмов и коэффициентов фильтра пот такие значения, чтобы при достаточно высокой силе фильтрации сохранить очень высокую точность следования траектории. В случае со средним уровнем фильтрации и ускорениях 500 мм/сек2, отклонение в местах резкого изменения направления не превысит 0,00625 мм. А в случае с минимальным уровнем фильтрации - менее 0,002 мм.
Но и минимальная фильтрация дает очень хорошие результаты.
Последний раз редактировалось michael-yurov 28 июн 2013, 15:53, всего редактировалось 1 раз.
Impartial
Мастер
Сообщения: 953
Зарегистрирован: 23 фев 2011, 01:50
Репутация: 36
Контактная информация:

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

Сообщение Impartial »

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

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

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

Impartial, большое спасибо за заинтересованность и действительно полезные советы.
Это я просто уперся по той причине, что сейчас завален срочной работой, и мне хочется побыстрее выбросить все связанное с фильтром из головы.
Работа сделана, и, пока что значительных проблем, требующих серьезных переделок - нет.
На самом деле я перебрал в голове уже уйму вариантов реализации, и все таки пришел к выводу, что текущий - наиболее удачный и в плане качества работы и в плане надежности (в первою очередь для меня важно не потерять ни одного шага). На более сложную прошивку у меня не хватит пока опыта и умственных способностей.

STM32F373CCT6 у нас в магазине нет в наличии :wik: http://www.promelec.ru/catalog/1/11/1777/0/
Думал - может быть перейти на 64-ногий корпус, чтобы меньше возиться с разводкой.
Еще, если делать интерфейсную плату - нужно будет добавить преобразователь для ШИМ, чтобы чип измерял входящую скважность, и генерировал ШИМ на большей частоте, для последующего преобразования.
И обработку сторожевого таймера еще нужно будет добавить.
Impartial
Мастер
Сообщения: 953
Зарегистрирован: 23 фев 2011, 01:50
Репутация: 36
Контактная информация:

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

Сообщение Impartial »

michael-yurov писал(а):STM32F373CCT6 у нас в магазине нет в наличии
372 увидел, что есть. Я порекомендовал 373 по той причине, что у многих есть интерес к преобразователю степ - 10вольт.
В 373 процессоре есть три ЦАП. Наиболее подходящий для этого. Дополни свое устройство этой фичей и интерес к нему резко вырастет.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

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

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

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

Impartial писал(а):372 увидел, что есть. Я порекомендовал 373 по той причине, что у многих есть интерес к преобразователю степ - 10вольт.
В 373 процессоре есть три ЦАП. Наиболее подходящий для этого. Дополни свое устройство этой фичей и интерес к нему резко вырастет.
Этот номер не пройдет - нужна ведь гальваническая развязка между микроконтоллером и инвертором. Я хотел измерить скважность, сгенерировать заново шим, передать через оптопару и преобразовать простым RC фильтром и ОУ
UAVpilot писал(а):А смысл? Зачем оно без подключенного энкодера?
Я запутался - вы про шпиндель, или про аналоговые сервы?

Если про сервы, то я уже обдумываю эту мысль. Устройство легко переделать под эту задачу,
использовать еще несколько таймеров для обратной связи от энкодера.
Последний раз редактировалось michael-yurov 28 июн 2013, 21:41, всего редактировалось 1 раз.
Impartial
Мастер
Сообщения: 953
Зарегистрирован: 23 фев 2011, 01:50
Репутация: 36
Контактная информация:

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

Сообщение Impartial »

Так а какие проблемы энкодер подключить? Те же таймера и использовать. Они специально под обработку энкодеров заточены. Только на корпус другой придется перейти.
Impartial
Мастер
Сообщения: 953
Зарегистрирован: 23 фев 2011, 01:50
Репутация: 36
Контактная информация:

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

Сообщение Impartial »

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

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

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

Impartial писал(а):Так а какие проблемы энкодер подключить? Те же таймера и использовать. Они специально под обработку энкодеров заточены. Только на корпус другой придется перейти.
Меня aftaev об этом давно просит.
Может быть уговорит - сделаю.
Но я сначала хотел эту штуку до ума довести.
Impartial писал(а):Гальваноразвязку проще по аналогу сделать, чем потом фильтповать ШИМ.
Мне не проще, я боюсь нелинейных искажений, а фильтровать высокочастотный ШИМ очень просто.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

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

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

Сообщение aftaev »

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

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

Сообщение aftaev »

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

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

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

Не, YAPSC не получится.
Во первых - из за сложности повторения печатной платы для lqfp.
Во вторых - я не готов пока открыть исходники.

Думаю, было бы хорошей идеей реализовать YAPSC на какой-нибудь недорогой стандартной популярной отладочной плате STM32,
выложить прошивку и инструкцию пошаговую.
aftaev писал(а):я фрезерую под водой
Наверное, я не так говорил, а что-нибудь вроде "Чего там снимать - я же под слоем воды фрезерую - там ничего не видно."
Impartial
Мастер
Сообщения: 953
Зарегистрирован: 23 фев 2011, 01:50
Репутация: 36
Контактная информация:

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

Сообщение Impartial »

michael-yurov писал(а):Мне не проще, я боюсь нелинейных искажений, а фильтровать высокочастотный ШИМ очень просто.
Давай опять посчитаем. Максимальную частоту ШИМ, при использовании тактовой 72мгц и при том же разрешении, что дает ЦАП (4096), можем получить
72 000 000/4096 = 17578,125. Не так уж и много.
Температурный джиттер оптрона не позволит точно передать изменение периода в 1/72 000 000 = 13,8 нс. Плюс свою лепту в задержку внесет фильтр.
Возникает проблема со скоростным ПИД, где получается при 4кгц сервоцикле всего чуть больше 4х итераций.
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

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

Сообщение aftaev »

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

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

Сообщение Serg »

michael-yurov писал(а):Думаю, было бы хорошей идеей реализовать YAPSC на какой-нибудь недорогой стандартной популярной отладочной плате STM32,
выложить прошивку и инструкцию пошаговую.
На отладочной не получится - я не встречал отладочных плат с аналоговым трактом для реализации +/-10V.

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

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

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

Impartial писал(а):Давай опять посчитаем. Максимальную частоту ШИМ, при использовании тактовой 72мгц и при том же разрешении, что дает ЦАП (4096), можем получить
72 000 000/4096 = 17578,125. Не так уж и много.
Температурный джиттер оптрона не позволит точно передать изменение периода в 1/72 000 000 = 13,8 нс. Плюс свою лепту в задержку внесет фильтр.
Возникает проблема со скоростным ПИД, где получается при 4кгц сервоцикле всего чуть больше 4х итераций.
Блин, да я про преобразователь ШИМ -> напряжение для управления шпинделем говорил про опторазвязку.
А для сервоприводов - это отдельная история, для них, наверное, и не нужно никакую гальваническую развязку.
UAVpilot писал(а):На отладочной не получится - я не встречал отладочных плат с аналоговым трактом для реализации +/-10V.
Значит придется еще надстройку придумать...
Хотя, тогда уже не понятно, стоит ли заморачиваться с оценочной платой.
Закрыто

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