5-Microstep Drive. Xilinx CPLD
Может кому пригодиться, вот здесь soel.ru/cms/f/?/364218.pdf есть статейка «Шаговый двигатель, управляемый устройством на ПЛИС»
Автор в реале с ПЛИС не работал, даже начинающий ПЛДшник такого себе не позволит.
Слепил. Пойду смотреть откуда дым повалит😲
Силовая часть сделана на связке IR2104 + STP30NF20
Две отптопары HCPL2531 (для STEP, DIR) и PS2501 (Enable) еще не запаял. Они будут с обратной стороны платы (в левом верхнем углу на картинке видны посадочные места).
Еще немножко доработал схему и теперь все работает. Сделал какое-то подобие морфинга. Вначале было 1/10 => 1/4 => 1/2 => FullStep а потом сделал по другому. Стал синусоиду вытягивать по экспоненте (опорное напряжение стало походить на трапецию). Что-то так мне больше нравится. Более плавно. Максимальная скорость которую могу вытащить из Mach3 3750мм/мин (1/10 микрошаг, 5мм винт) и на этой скорости крутит. Драйвер и мотор греются не шибко сильно. По ходу работы из мотора слышно какое-то постукивание, не механическое, явно электрического происхождения. Примерно каждые 3-6сек слышен такой “ТУК”. Надо на станке погонять и посмотреть что там с пропуском шагов, если кончно будет. Где-то на 2300мм/мин идет резонанс. Вот с этим облом. Тут только программой не обойдешься, надо менять схемотехнику. Только непонятно откуда начинать. Можно сравнивать ток обмотки мотора (в идеале экспонента) с какой-то опорной экспонентой и в случае расхождения выдавать сигнал на CPLD (при резонансе экспонента начинает вытягиваться в синусоиду). А вот что дальше менять в алгоритме работы пока не знаю.
to ATLab. Посмотрел я на картинки тока в обмотках двигателя. Такие-же как и в G203V (это когда резонанса нет). Практически все один в один. Форму тока при резонансе надо снимать на видео, тогда будет видно как она “раздувается”.
… Форму тока при резонансе надо снимать на видео, тогда будет видно как она “раздувается”.
Что значит “раздувается”? Что раздувается?
Что значит “раздувается”? Что раздувается?
Пост №96. Последние две картинки показывают форму тока когда резонанса нет.
Перед переходом в резонанс форма тока начинает “раздуваться” и больше походить на синусоиду чем на экспоненту.
А при самом резонансе уже почти синусоида.
Ну видео как все это происходит тут:
На 53сек четко виден переход в резонанс. Весь этот “визжащий-надрывный” звук из ролика когда мотор в резонансе и вал не крутится.
Покрутил на станке. 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.
Может у кого есть еще какие-то практические мнения по этому поводу?
- Самое простое - посмотреть как это делается в Gecko. Проследить по плате драйвера кусок схемы на ОУ от измерительных резисторов до компараторов и попытаться понять, что там творится.
- Поискать патенты.
Как сделано в геко посмотрел, даже схемку нарисовал. Там с каждого current sense резистора через сопротивление в 10К (оба этих резистора соединены вместе) снимается сигнал (получается суммарный сигнал) и идет на ОУ который является фильтром низких частот, а с него на компаратор. С компаратора на CPLD. Что дальше происходит в программе пока непонятно. Причем опорное напряжение для компаратора тоже формируется от CPLD.
Патенты искал. Пока ничего путного не нашел.
Там с каждого current sense резистора через сопротивление в 10К (оба этих резистора соединены вместе) снимается сигнал (получается суммарный сигнал)
Может это для защиты цепь?
Или для поддержания “среднего” тока?
Защита там по другому выполнена и к CPLD не имеет отношения. “Защелка” на двух элементах НЕ. На входе сигнал от терминала “Enable”. На выходе сигнал SD для IR2104. Плюс, туда еще приходит сигнал с токового резистора стоящего в цепи общего питания драйвера (собственно защита).
Как сделано в геко посмотрел… идет на ОУ который является фильтром низких частот, а с него на компаратор. С компаратора на CPLD…
Где-то у меня валялся китаец, драный с Геко, сделанного еще на логике.
Если найду, в выходные попробую посмотреть.
А этот ФНЧ никакую фазу не двигает? По идее, смысл то в введении доп. фазового сдвига, чтобы убрать условие самовозбуждения.
А этот ФНЧ никакую фазу не двигает? По идее, смысл то в введении доп. фазового сдвига, чтобы убрать условие самовозбуждения.
Выход с компаратора идет на CPLD. Я вот думаю, надо наверно покрутить мотор гековским G203V и посмотреть при каких ситуациях на выходе компаратора появляются импульсы и что идет с выхода CPLD для формирования опорного напряжения.
Ничего кроме как сдвигать фазу на 10°-15° в голову не приходит. Теперь попутно еще вопрос, а как распознать момент когда надо эту самую фазу сдвигать?
Где-то у меня валялся китаец, драный с Геко, сделанного еще на логике.Если найду, в выходные попробую посмотреть…
Не нашел 😦 Куда-то заиграл…
Может это поможет, нам помогло
www.electroprivod.ru/microstep.htm
собственно эта часть
" если ни одна часть магнитной цепи двигателя не насыщается."
Как сделано в геко посмотрел, даже схемку нарисовал. Там
1)с каждого current sense резистора через сопротивление в 10К (оба этих резистора соединены вместе) снимается сигнал (получается суммарный сигнал) и идет на ОУ который является фильтром низких частот, а с него на компаратор. С компаратора на CPLD. Что дальше происходит в программе пока непонятно.
2)Причем опорное напряжение для компаратора тоже формируется от CPLD
- Получается усреднение сигналов, которое характеризует разность сигналов (причем модуль). Например, если смотреть в точке (по времени) где сигналы должны быть одинаковы, мы получим рассогласование фаз или насыщение и т.д.
- Наверное постоянный сигнал с CPLD подавать бессмысленно. Вероятно, подается ШИМ на интегратор. Тогда это просто ЦАП, который используется как уставка регистрации рассогласования сигналов.
Кроме того, есть вопрос по приведенным осциллограммам вашей платы. У меня не было времени изучить программу управления ключами, но мне показалось, глядя на осциллограммы, что регулировка тока напрямую подключена к компараторам, стабильность которой определяется наводками. Если это так, может попробовать усреднять сигналы с компараторов для исключения влияния наводок. Практически, можно откалибровать зависимость тока от частоты, для конкретнй нагрузки и использовать затабулированные значения для регулировки тока в обмотке. Интересно, как тогда будут выглядеть осциллограммы?
Сегодня покрутил драйвера на станке. Работает без проблемм. Поскольку станок дает нагрузку на моторы то с резонансом на станке еще не столкнулся.
Помех от совместной работы драйверов и шпинделя (BOSH) также не наблюдалось. Наверно все доработки которые внес в схему драйвера и платы опторазвязки сделали свое дело.
Остаются еще недоделки с механикой, да и с драйверами еще можно долго играться, но в целом на станке уже можно смело строгать и пилить. Чем скоро и займемся.
Наверно все доработки которые внес в схему драйвера и платы опторазвязки сделали свое дело.
А можно подробнее о доработках.
А можно подробнее о доработках.
Добавил фильтры между оптопарой и входами CPLD.
После платы опторазвязки воткнул буферные микросхемы 74LS244. Теперь выходное сопротивление значительно понизилось, соответственно наводимые помехи шунтируются на блок питания опторазвязки.
74LS244 ставил потому что они у меня уже были. Лучше будет поставить что-то с тригером Шмитта по входу. Например 74HC7541 или что-то похожее. Если используется сигнал Enable для всех драйверов то желательно на этот сигнал повесить два буфера, а то выходного тока может на всех не хватить.
Уважаемый Boldive!
Хочу повторить вашу разработку,но подруками нет нужной плис,привезут только через месяц
ито если закажеш мешок.Есть в наличии Альтера EPM7064SL44-10,вроде подходит если я не
ошибаюсь.Если да,то немогли бы вы перекомпилировать файл под неё.
Уважаемый Boldive!
.Если да,то немогли бы вы перекомпилировать файл под неё.
По Альтере это к mura. Он, кстати, где-то тут выше уже выкладывал перекомпилированный под Альтеру код.
Если будете повторять, то вместо HCPL2631 (5В питания) надо ставить HCPL2630 (12В питания).
По питанию от блока питания поставил фильтрующие дросселя с двумя конденсаторами на 1uF с каждой стороны.
тут исходник, pof и rpt под 7064
Может не завестись задающий генератор - тогда просто подать внешнюю частоту.