5-Microstep Drive. Xilinx CPLD

boldive

Покрутил на станке. 1/10 микрошаг. Винт 5мм. Голый мотор уходил в резонанс на скорости 2300мм/мин. Воткнул на ось Y. Теперь полоса резонанса с 2400 до 3100 мм/мин. Выше 3100мм/мин и до 3750мм/мин (Mach3 больше не дает) никаких проблемм.

Порылся в интернете и понял что тема борьбы с резонансом “засекречена”. Есть общие идеи с которых можно начинать, но как именно это реализовывать в системах контроля с open-loop под завесой тайны.

На http://cnczone.com нашел только единственную фразу проливающую свет на решение проблеммы.
The midband resonance circuit adds a derivative component (+80 degrees
phase lead) to the system phase angle to eliminate parametric
resonance. It involves sensing the rate of motor load change
(derivative of motor torque) which then phase modulates the internal
step pulse timing.

Может у кого есть еще какие-то практические мнения по этому поводу?

ATLab
  1. Самое простое - посмотреть как это делается в Gecko. Проследить по плате драйвера кусок схемы на ОУ от измерительных резисторов до компараторов и попытаться понять, что там творится.
  2. Поискать патенты.
boldive

Как сделано в геко посмотрел, даже схемку нарисовал. Там с каждого current sense резистора через сопротивление в 10К (оба этих резистора соединены вместе) снимается сигнал (получается суммарный сигнал) и идет на ОУ который является фильтром низких частот, а с него на компаратор. С компаратора на CPLD. Что дальше происходит в программе пока непонятно. Причем опорное напряжение для компаратора тоже формируется от CPLD.

Патенты искал. Пока ничего путного не нашел.

mura
boldive:

Там с каждого current sense резистора через сопротивление в 10К (оба этих резистора соединены вместе) снимается сигнал (получается суммарный сигнал)

Может это для защиты цепь?
Или для поддержания “среднего” тока?

boldive

Защита там по другому выполнена и к CPLD не имеет отношения. “Защелка” на двух элементах НЕ. На входе сигнал от терминала “Enable”. На выходе сигнал SD для IR2104. Плюс, туда еще приходит сигнал с токового резистора стоящего в цепи общего питания драйвера (собственно защита).

ATLab
boldive:

Как сделано в геко посмотрел… идет на ОУ который является фильтром низких частот, а с него на компаратор. С компаратора на CPLD…

Где-то у меня валялся китаец, драный с Геко, сделанного еще на логике.
Если найду, в выходные попробую посмотреть.

А этот ФНЧ никакую фазу не двигает? По идее, смысл то в введении доп. фазового сдвига, чтобы убрать условие самовозбуждения.

boldive
ATLab:

А этот ФНЧ никакую фазу не двигает? По идее, смысл то в введении доп. фазового сдвига, чтобы убрать условие самовозбуждения.

Выход с компаратора идет на CPLD. Я вот думаю, надо наверно покрутить мотор гековским G203V и посмотреть при каких ситуациях на выходе компаратора появляются импульсы и что идет с выхода CPLD для формирования опорного напряжения.

Ничего кроме как сдвигать фазу на 10°-15° в голову не приходит. Теперь попутно еще вопрос, а как распознать момент когда надо эту самую фазу сдвигать?

ATLab
ATLab:

Где-то у меня валялся китаец, драный с Геко, сделанного еще на логике.Если найду, в выходные попробую посмотреть…

Не нашел 😦 Куда-то заиграл…

Impartial

Может это поможет, нам помогло
www.electroprivod.ru/microstep.htm
собственно эта часть
" если ни одна часть магнитной цепи двигателя не насыщается."

1 month later
VladimirVA
boldive:

Как сделано в геко посмотрел, даже схемку нарисовал. Там

1)с каждого current sense резистора через сопротивление в 10К (оба этих резистора соединены вместе) снимается сигнал (получается суммарный сигнал) и идет на ОУ который является фильтром низких частот, а с него на компаратор. С компаратора на CPLD. Что дальше происходит в программе пока непонятно.
2)Причем опорное напряжение для компаратора тоже формируется от CPLD

  1. Получается усреднение сигналов, которое характеризует разность сигналов (причем модуль). Например, если смотреть в точке (по времени) где сигналы должны быть одинаковы, мы получим рассогласование фаз или насыщение и т.д.
  2. Наверное постоянный сигнал с CPLD подавать бессмысленно. Вероятно, подается ШИМ на интегратор. Тогда это просто ЦАП, который используется как уставка регистрации рассогласования сигналов.

Кроме того, есть вопрос по приведенным осциллограммам вашей платы. У меня не было времени изучить программу управления ключами, но мне показалось, глядя на осциллограммы, что регулировка тока напрямую подключена к компараторам, стабильность которой определяется наводками. Если это так, может попробовать усреднять сигналы с компараторов для исключения влияния наводок. Практически, можно откалибровать зависимость тока от частоты, для конкретнй нагрузки и использовать затабулированные значения для регулировки тока в обмотке. Интересно, как тогда будут выглядеть осциллограммы?

boldive

Сегодня покрутил драйвера на станке. Работает без проблемм. Поскольку станок дает нагрузку на моторы то с резонансом на станке еще не столкнулся.

Помех от совместной работы драйверов и шпинделя (BOSH) также не наблюдалось. Наверно все доработки которые внес в схему драйвера и платы опторазвязки сделали свое дело.

Остаются еще недоделки с механикой, да и с драйверами еще можно долго играться, но в целом на станке уже можно смело строгать и пилить. Чем скоро и займемся.

mura
boldive:

Наверно все доработки которые внес в схему драйвера и платы опторазвязки сделали свое дело.

А можно подробнее о доработках.

boldive
mura:

А можно подробнее о доработках.

Добавил фильтры между оптопарой и входами CPLD.


После платы опторазвязки воткнул буферные микросхемы 74LS244. Теперь выходное сопротивление значительно понизилось, соответственно наводимые помехи шунтируются на блок питания опторазвязки.

74LS244 ставил потому что они у меня уже были. Лучше будет поставить что-то с тригером Шмитта по входу. Например 74HC7541 или что-то похожее. Если используется сигнал Enable для всех драйверов то желательно на этот сигнал повесить два буфера, а то выходного тока может на всех не хватить.

2 months later
miklin

Уважаемый Boldive!
Хочу повторить вашу разработку,но подруками нет нужной плис,привезут только через месяц
ито если закажеш мешок.Есть в наличии Альтера EPM7064SL44-10,вроде подходит если я не
ошибаюсь.Если да,то немогли бы вы перекомпилировать файл под неё.

boldive
miklin:

Уважаемый Boldive!
.Если да,то немогли бы вы перекомпилировать файл под неё.

По Альтере это к mura. Он, кстати, где-то тут выше уже выкладывал перекомпилированный под Альтеру код.

Если будете повторять, то вместо HCPL2631 (5В питания) надо ставить HCPL2630 (12В питания).
По питанию от блока питания поставил фильтрующие дросселя с двумя конденсаторами на 1uF с каждой стороны.

mura

тут исходник, pof и rpt под 7064

Может не завестись задающий генератор - тогда просто подать внешнюю частоту.

g900m.zip

boldive
boldive:

Если будете повторять, то вместо HCPL2631 (5В питания) надо ставить HCPL2630 (12В питания).

Ошибочка вышла. Оптопара HCPL2531. Схема включения на картинке выше.
Схеме драйвера в архиве. Там внешний задающий генератор, то что Вам нужно.

80V8A_v4.zip

miklin

Олег!
Раз дело так пошло,можно схему и плату в Альтиуме.
Можно в личку.
miklin@mail.ru

boldive
miklin:

Олег!
Раз дело так пошло,можно схему и плату в Альтиуме.

Жаба душит. Дайте мне пару дней на борьбу с ней. Это-же еще и библиотеку элементов надо давать, а там стыд и срам. Делал все на скорую руку для себя. Кстати, а вы такое спаять сможете? Я ведь обязательно попрошу выложить полученное творение на всеобщее обозрение.

miklin

Да зачем её править, мне всёравно подсвой корпус переделывать,
просто побыстрей будет.А жабу брось в морозилку,пусть замёрзнет,
когда потребуется вытащиш. Оттает и снова поскачет.

boldive

Если покопаться на сайте Geckodrive, то можно найти много полезной информации. Например вот такая схемка между блоком питания и драйвером. Для моторов с токами больше 5А весьма актуально. Еще немножко тут и тут.