Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Возможно ли определить пропуск шага шаговым двигателем.
Форум разработчиков электроники ELECTRONIX.ru > Силовая Электроника - Power Electronics > Электрические машины, Электропривод и Управление
Страницы: 1, 2
a123-flex
Есть шаговый двигатель с не шибко хитрым контроллером, без излишней самодеятельности (не trinamic).

Вопрос: можно, измерив с него текущее напряжение и ток фаз, зная скорость движения, уставки, и все остальное что знает контроллер управления, определить, пропустил ли двигатель шаг.

Говорят, что некто AlexMos при создании подвеса беспилотника на bldc исследовал что-то подобное, но я не нашел этой статьи.
Если кто видел киньте ссылочку плз.
somebody111
Отслеживать положение ротора по энкодеру. Вы ему задание - сделать шаг. Смотрите по энкодеру - сделал ли. Если разница между заданным положением и реальным не ноль - пропустил
a123-flex
Цитата(somebody111 @ Jun 13 2017, 20:18) *
Отслеживать положение ротора по энкодеру. Вы ему задание - сделать шаг. Смотрите по энкодеру - сделал ли. Если разница между заданным положением и реальным не ноль - пропустил

По энкодеру понятно. Затратно это, конструктивно геморройно, куча ньансов - пыль, грязь,... хочется другое решение.
Tanya
Цитата(a123-flex @ Jun 13 2017, 19:22) *
По энкодеру понятно. Затратно это, и конструктивно геморройно, хочется другое решение.

Шаговые двигатели были сделаны для того, чтобы убрать обратную связь по положению... Если нагрузка меняется (заклинивает), то тут ничего уже не сделаешь, а если контроллер слишком быстро хочет что-то там двигать, то ему нужно вправить мозги.
a123-flex
Цитата(Tanya @ Jun 13 2017, 20:29) *
Если нагрузка меняется (заклинивает), то тут ничего уже не сделаешь, а если ...

но ведь заклинивание должно вызвать бросок тока, а потом его спад при проскальзывании двигателя ?

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

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

это одна единственная микруха среди нескоольких десятков драйверов ШД, которая умеет это делать.
Попробую найти её ещё раз
a123-flex
Цитата(Николай Семёнович @ Jun 13 2017, 20:41) *
попадалась микросхема, которая монеторит эдс и ток и с помощью мат. обработки определяет заклинивание и пропуск шагов. там ещё вроде дэйсипи стоит

прекрасно. как называлась, не вспомните ?
Николай Семёнович
напомните как эдс по ангицки - тогда я быстрей найду эту инфу в кеше броузера
a123-flex
Цитата(Николай Семёнович @ Jun 13 2017, 20:43) *
напомните как эдс по ангицки - тогда я быстрей найду эту инфу в кеше броузера

voltage
Tanya
Цитата(a123-flex @ Jun 13 2017, 19:33) *
но ведь заклинивание вызовет бросок тока, а потом его резкий спад при потере синхронности двигателя ?

Очень это ненадежно. Ведь еще есть зависимость от скорости. Проще смазывать и чистить вовремя.
a123-flex
Цитата(Tanya @ Jun 13 2017, 20:48) *
Очень это ненадежно. Ведь еще есть зависимость от скорости. Проще смазывать и чистить вовремя.

Хочется все-таки иметь возможность диагностировать отказ.
amaora
Другими словами вам нужно определять положение без датчика положения. Использование шагового двигателя действительно подразумевает, что вы будете не определять положение а задавать.

Я делаю бездатчиковое управление для bldc, не думаю, что вам будет целесообразно делать подобное. Но методы есть, для шаговых думаю их адаптировать можно. Будет ли достойный результат. Для bldc вот не получается, бездатчиковый метод не дает такого качетва информации как энкодер, на низких и нулевых скоростях.
AlexandrY
Цитата(a123-flex @ Jun 13 2017, 19:33) *
Интересно, где-нибудь есть графики тока и напряжения на движке при нормальной работе и при срыве синхронизации ?

Там исследовать нечего. Конечно форма тока сильно зависит от движения в магнитном поле.
Но для этого нужно за время импульса провести не менее 20-30 измерений.
Дальше корреляция и решение.
Весь вопрос предусмотрели ли вы быстрый ADC в своем контроллере.
a123-flex
Цитата(AlexandrY @ Jun 13 2017, 23:12) *
Там исследовать нечего. Конечно форма тока сильно зависит от движения в магнитном поле.
Но для этого нужно за время импульса провести не менее 20-30 измерений.
Дальше корреляция и решение.
Весь вопрос предусмотрели ли вы быстрый ADC в своем контроллере.

Я если честно спрашивая надеялся узнать про опыт реализаций, а не сделать заход на очередной НИР.
Пока спрашивал сам нашел реализации.

В моей текущей плате быстрого АЦП нет, но вот ST в своем L6470 думаю и АЦП и коррелятор реализовали.
По отзывам, однако, работает это нестабильно. На другие контроллеры отзывов не видел - видимо ST первыми были.

Кстати 20 измерений за цикл это 2Мгц выборки для step частоты 100 кГц (что для обычного контроллера очень много). 2МГц встроенный в ARM АЦП вполне у ST сможет (у меня 427), не потянет он коррелятор только, и то не факт, там сопроцессор. Если нет, в стоногом корпусе на параллельную шину в плиску на коррелятор поток можно выкинуть и вполне себе решение.
Николай Семёнович
Цитата(a123-flex @ Jun 13 2017, 19:45) *
voltage

Это напряжение.
А нужно ЭДС. Она как-то по другому у них обзывается
amaora
Цитата(Николай Семёнович @ Jun 14 2017, 06:42) *
Это напряжение.
А нужно ЭДС. Она как-то по другому у них обзывается


EMF.
dinam
Драйверы, умеющие определять пропуск шагов делают многие фирмы. В соседней теме я выкладывал некоторые из них. Посмотрите, может в datasheet написано как они определяют пропуск шагов.
Эдди
Еще интересен TMC2660 — на работе планирую заказать по парочке этих и L6470H, буду на досуге ковырять, кто из них лучше.
Правда, у меня нет цели диагностировать пропуск шагов (тихо-мирно прем себе до концевика с запасом в 10-15% шагов — на случай диагностики полного ахтунга), но хочется уже перейти на человеческие драйверы, которые сами что нужно делают. Лепить горбатого из L6208 и отдельного микроконтроллера не хочется (хотя, по цене выходит дешевле).
a123-flex
Цитата(dinam @ Jun 14 2017, 09:16) *
Драйверы, умеющие определять пропуск шагов делают многие фирмы. В соседней теме я выкладывал некоторые из них. Посмотрите, может в datasheet написано как они определяют пропуск шагов.

Эдди спрашивал про диагностику КЗ и обрыва - я прочитал тему прежде чем открыть свою.
Судя по рекламе, последний trinamic только крыльями не машет, а остальное все умеет. Интересно как с ним дело в реальности обстоит.
AlexandrY
Цитата(a123-flex @ Jun 13 2017, 23:31) *
В моей текущей плате быстрого АЦП нет, но вот ST в своем L6470 думаю и АЦП и коррелятор реализовали.

Так вам stall detection или пропуск одиночных шагов определять?
Stall detection это грубая оценка того что мотор застопорился мертво.
Без быстрого ADC пропуск одиночных шагов нет никаких шансов определить. А в простейших IC типа L6470, AMIS-30532 или TMC2224 этого точно не будет.

a123-flex
Цитата(AlexandrY @ Jun 14 2017, 12:17) *
Так вам stall detection или пропуск одиночных шагов определять?
Stall detection это грубая оценка того что мотор застопорился мертво.
Без быстрого ADC пропуск одиночных шагов нет никаких шансов определить. А в простейших IC типа L6470, AMIS-30532 или TMC2224 этого точно не будет.

Почитайте доки амиса. Не грубая это оценка, и единичные проскальзывания она тоже позволяет. Кроме того, шаговый двигатель не может пропустить один шаг - уж если он сорвался - их должно быть несколько подряд - логично ?
Я думаю, обладая априорной информацией о загрузке привода вполне возможно вычислить пропуск нескольких.
khach
Возможно определять по изменению индуктивности обмоток в пределах одного шага. Но для этого необходима ВЧ инжекция сигнала в обмотки. В реале лучше чтобы это была другая частота, чем частота ШИМ. Два синхронных детектора на частоте инжекции и выход на таймер в режиме квадратурного энкодера процессора. ДСП обработка тоже возможна, но требует стольких ресурсов, что желательно под это отрядить отдельный микроконтроллер.
a123-flex
Цитата(khach @ Jun 14 2017, 12:53) *
Возможно определять по изменению индуктивности обмоток в пределах одного шага. Но для этого необходима ВЧ инжекция сигнала в обмотки. В реале лучше чтобы это была другая частота, чем частота ШИМ. Два синхронных детектора на частоте инжекции и выход на таймер в режиме квадратурного энкодера процессора. ДСП обработка тоже возможна, но требует стольких ресурсов, что желательно под это отрядить отдельный микроконтроллер.

Я заметил, что даже самые одаренные люди часто стараются привести задачу к такому виду, чтобы они могли ее успешно завалить.
Я правильно Вас понимаю, вы предлагаете разработать собственный контроллер ?

В смысле я не представляю себе инжекцию ВЧ сигнала в работающий современный драйвер - там H-мост.
khach
Цитата(a123-flex @ Jun 14 2017, 10:59) *
Я правильно Вас понимаю, вы предлагаете разработать собственный контроллер ?

В смысле я не представляю себе инжекцию ВЧ сигнала в работающий современный драйвер - там H-мост.

Контроллер? Нет конечно, а вот драйвер прийдется разрабатывать.
По поводу инжекции- открою секрет, у хороших драйверов ( а не китайских поделий) на выходе H-моста стоят индуктивные элементы. Которые глушат ШИМ и обеспечивают совместимость по ЕМС. Так вот философия не запрещает дополнить эти индуктивные элементы дополнительной слаботочной обмоткой, связанной с инжектором ВЧ и синхронными детекторами. Дальше продолжать или сами догадаетесь?
a123-flex
Цитата(khach @ Jun 14 2017, 13:15) *
Контроллер? Нет конечно, а вот драйвер прийдется разрабатывать.

Я именно это имел в виду. Это именно то, чего бы я не хотел)

Цитата(khach @ Jun 14 2017, 13:15) *
По поводу инжекции- открою секрет, у хороших драйверов ( а не китайских поделий) на выходе H-моста стоят индуктивные элементы. Которые глушат ШИМ и обеспечивают совместимость по ЕМС. Так вот философия не запрещает дополнить эти индуктивные элементы дополнительной слаботочной обмоткой, связанной с инжектором ВЧ и синхронными детекторами. Дальше продолжать или сами догадаетесь?

Последний Trinamic на сегодняшний день самый дорогой (и судя по всему самый продвинутый) на рынке интегральный драйвер.
В его типовой схеме включения катушки нет.

Или Вы Leadshine драйверы предлагаете апгрейдить ?
khach
HFI ( high frrequency injection) можно реализовать и полностью на контроллере. Вообще отказавшись от интеллигентного драйвера мотора и оставив только тупые драйвера транзисторов полумоста.
По крайней мере в последней STM32 FOC SDK это реализовано для сенсорлесс управления PMSM. Значит и перенести на обычные шаговику можно. Конечно в этом случае управление Н-мостом на основе таймеров процессора.
a123-flex
Цитата(khach @ Jun 14 2017, 12:56) *
HFI ( high frrequency injection) можно реализовать и полностью на контроллере. Вообще отказавшись от интеллигентного драйвера мотора и оставив только тупые драйвера транзисторов полумоста.
По крайней мере в последней STM32 FOC SDK это реализовано для сенсорлесс управления PMSM. Значит и перенести на обычные шаговику можно. Конечно в этом случае управление Н-мостом на основе таймеров процессора.

Готового пресета на шаговик ведь нет ? Значит это очередной НИР. Это именно то, чего я не хотел.
khach
Цитата(a123-flex @ Jun 14 2017, 12:04) *
Готового пресета на шаговик ведь нет ?

Нет конечно. Да и сама библиотека FOC SDK в виде исходников недоступна. И задача HFI наблюдателя в алгоритме немного другая- отслеживание положения ротора, а не детекция срыва синхронизма АКА пропуск шага. Но это просто пример, что мощности процессора хватает для реализации и инжекции ВЧ манипулированем ШИМ драйвера и обработки сигнала с АЦП в риалтайме.
Поэтому я и предлагал аппартаную реализацию без вмешательства в существующий контроллер.
a123-flex
Цитата(Эдди @ Jun 14 2017, 08:20) *
Еще интересен TMC2660 — на работе планирую заказать по парочке этих и L6470H, буду на досуге ковырять, кто из них лучше.
Правда, у меня нет цели диагностировать пропуск шагов (тихо-мирно прем себе до концевика с запасом в 10-15% шагов — на случай диагностики полного ахтунга), но хочется уже перейти на человеческие драйверы, которые сами что нужно делают. Лепить горбатого из L6208 и отдельного микроконтроллера не хочется (хотя, по цене выходит дешевле).

Я тут слышал от опытных людей, что коробка leadshine на 4А честных стоит 2 тыр.
А там собственная морда на rs232 с отстройкой резонансов и блекджеками.

Цитата(khach @ Jun 14 2017, 13:14) *
Нет конечно. Да и сама библиотека FOC SDK в виде исходников недоступна. И задача HFI наблюдателя в алгоритме немного другая- отслеживание положения ротора, а не детекция срыва синхронизма АКА пропуск шага. Но это просто пример, что мощности процессора хватает для реализации и инжекции ВЧ манипулированем ШИМ драйвера и обработки сигнала с АЦП в риалтайме.
Поэтому я и предлагал аппартаную реализацию без вмешательства в существующий контроллер.

мне если честно вот так жить надоело...а Вы предлагаете к неизбежным граблям добавить еще и сверхурочные, типа вот так(:
khach
Цитата(a123-flex @ Jun 14 2017, 12:23) *
Вы предлагаете к неизбежным граблям добавить еще и сверхурочные, типа вот так:

Ну это от задачи зависит. У нас шаговик стоял внутри высоковакуумной камеры. Энкодеры туда вставить было нельзя. Шаговик специальный- выдерживал нагрев до 200 градусов. Но все равно обмоки можно было перегреть, т.к теплоотвод в вакууме никакой. Схема HFI контролировала кроме позиции еще и температуру обмоток по изменнеию их сопротивления. А потеря шага или заклининивание мотора были чреваты аварией на несколько дестяков тысяч вечнозеленых. Поэтому навороченная схема контроля позиции мотора полностью окупалась и в разработке, и в использовании.
a123-flex
Цитата(khach @ Jun 14 2017, 13:34) *
А потеря шага или заклининивание мотора были чреваты аварией на несколько дестяков тысяч вечнозеленых.

мне нравится китайский подход - у меня все изделие должно стоить менее 1000$. и никакого космоса. Я не Маск
Думаю, если бы Вы захотели мне свой драйвер подарить, к цене Leadshin-а все равно пришлось бы приписать 0, а я вангую, что Вы еще и есть хотите иногда)

Цитата(khach @ Jun 14 2017, 13:34) *
Ну это от задачи зависит. У нас шаговик стоял внутри высоковакуумной камеры.

Магнитную муфту нельзя было использовать ?
Эдди
Цитата(a123-flex @ Jun 14 2017, 13:23) *
Я тут слышал от опытных людей, что коробка leadshine на 4А честных стоит 2 тыр.
А там собственная морда на rs232 с отстройкой резонансов и блекджеками.

Не годится: нужно что-нибудь небольшое, т.к. места обычно не густо. А подобные "готовые" драйвера еще плохи тем, что приходится много соплей навешивать — проводочки-то тупо на клеммники обычно цепляются. Некошерно как-то.
Эти же SPI'ные драйвера и небольшие, и стоимость у них около 400р, и можно навешать кучу на одну линию SPI, только clock подавай каждому... А еще, судя по даташиту, на токах в 1-1.5А они почти не греются, т.е. можно даже без радиаторов обойтись.

Вот, кстати, интересно, что в ЧПУшные станки китайцы никаких энкодеров не ставят! И концевики у них индуктивные — боюсь предположить, какой там гистерезис… И ничего, пилят дюральку… Коллеги собрали такой — уже несколько готовых деталей для своих спектрографов вырезали. Как у них получается точность в 5 соток — ума не приложу!
AlexandrY
Цитата(a123-flex @ Jun 14 2017, 11:50) *
Почитайте доки амиса. Не грубая это оценка, и единичные проскальзывания она тоже позволяет. Кроме того, шаговый двигатель не может пропустить один шаг - уж если он сорвался - их должно быть несколько подряд - логично ?
Я думаю, обладая априорной информацией о загрузке привода вполне возможно вычислить пропуск нескольких.

Почитал, ничего не нашел. Где там описан механизм проверки выполнения отдельных шагов?

a123-flex
Цитата(Эдди @ Jun 14 2017, 15:41) *
Не годится: нужно что-нибудь небольшое, т.к. места обычно не густо. А подобные "готовые" драйвера еще плохи тем, что приходится много соплей навешивать — проводочки-то тупо на клеммники обычно цепляются. Некошерно как-то.
Эти же SPI'ные драйвера и небольшие, и стоимость у них около 400р, и можно навешать кучу на одну линию SPI, только clock подавай каждому... А еще, судя по даташиту, на токах в 1-1.5А они почти не греются, т.е. можно даже без радиаторов обойтись.

Вам выбора нет. У меня нет ограничений на габарит.

Цитата(Эдди @ Jun 14 2017, 15:41) *
Вот, кстати, интересно, что в ЧПУшные станки китайцы никаких энкодеров не ставят! И концевики у них индуктивные — боюсь предположить, какой там гистерезис…

Гистерезис концевика неважен - они в одном цикле все пилят, начальная координата устанавливается вручную, в концевик в цикле обработки не ходят.

Цитата(Эдди @ Jun 14 2017, 15:41) *
И ничего, пилят дюральку… Коллеги собрали такой — уже несколько готовых деталей для своих спектрографов вырезали. Как у них получается точность в 5 соток — ума не приложу!

В нормально собранном и обслуживаемом ЧПУ при правильной подаче станок шаг не пропустит, иначе это не ЧПУ...
ему обратная связь не необходима.
5 соток это нормально.

Цитата(AlexandrY @ Jun 14 2017, 19:29) *
Почитал, ничего не нашел. Где там описан механизм проверки выполнения отдельных шагов?

Еще раз повторюсь, ШД не может пропустить 1 шаг. Вы упорно не хотите видеть этой фразы)
Точнее сказать, потеряв синхронизацию, двигатель может пропустить от 1 до n шагов подряд.

AND8471-D.PDF страница 8. Таки amis ето моторола...гребаные слияния и поглощения.

Впрочем не имеет значения кто. Главное чтобы BEMF правильно обрабатывалось, ВЕДЬ ЧАСТОТЫ ДИСКРЕТИЗАЦИИ и ПРОИЗВОДИТЕЛЬНОСТИ ДЛЯ ЭТОГО БОЛЬШОЙ НЕ НУЖНО - 100 квыб/c более чем достаточно)

и корреляторы, тоже ни к чему здесь)))
AlexandrY
Цитата(a123-flex @ Jun 14 2017, 19:40) *
Еще раз повторюсь, ШД не может пропустить 1 шаг. Вы упорно не хотите видеть этой фразы)
AND8471-D.PDF страница 8. Извиняюсь, это ON Semi.

Ну тогда вам нужно переименовать тему чтобы не вводить никого в заблуждение.
Stall detection нужен для того чтобы мотору не биться в конвульсиях об конечники. Это в вашим апноте написано на первой странице.
Пропуск отдельных шагов эта фича не уловит.

А вот почему шаговоик не может пропустить один шаг я вас внимательно слушаю.
a123-flex
Цитата(AlexandrY @ Jun 14 2017, 22:29) *
Ну тогда вам нужно переименовать тему чтобы не вводить никого в заблуждение.
Stall detection нужен для того чтобы мотору не биться в конвульсиях об конечники. Это в вашим апноте написано на первой странице.
Пропуск отдельных шагов эта фича не уловит.

Видимо для Вас инженеры моторолы не указ. Может переведете нам правильным образом вот ето:

This enables silent, yet accurate position calibrations during a referencing run....
...
To detect these short dips or peaks, AMIS−30623 and AMIS−30624 (not applicable for the NCV70627) will take the average value of the BEMF and add a delta on top and below this level (DelThr). If the immediate BEMF value goes outside this window, stall is detected and the movement is stopped

Цитата(AlexandrY @ Jun 14 2017, 22:29) *
А вот почему шаговоик не может пропустить один шаг я вас внимательно слушаю.

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

Более того, он может например сделать вот такое: ...1110010001111.., или, если Вам угодно, вот такое:...111010001111.. Самое интересное - это ситуация превышения допустимого момента(ускорения) на разгоне: тогда там может быть случайная последовательность (это как раз и есть вариант, когда оставили 10% момента про запас, а дальше направляющие засорились).

В одной из рассматриваемых схем ввести внешний энкодер невозможно, поэтому я хотел иметь возможность детектировать такие ситуации. Надеюсь, Вы согласитесь (учитывая цитаты)) что вероятность обнаружения таких проблем посредством stall detect не равна нулю. Машина может начать дурковать, но если спустя небольшое время она сможет понять, что с механикой проблема, и скажет об этом юзеру, то юзер будет доволен.

В противном случае разработчика будут поливать грязью, хоть бы юзер и искупал ее в песочнице перед этим.
Кроме песочниц есть еще стружка, пыль, и необходимость регулярного обслуживания направляющих, о которой немногие помнят.
Эдди
У них еще бывают проблемы на нормальной скорости с концевиков съехать. Поэтому в предыдущей железяке мне пришлось делать простенькое управление разгоном.
Вот чтобы с такой неприятной бякой не возиться, лучше сразу драйвер взять, который умеет разгон/торможение и детектирование всяких неприятностей.
Другой неприятностью было управление затвором на TLE5205: я через него разряжал кондей 2200мкФ на обмотку затвора, так мост в первые миллисекунды думал, что в цепи КЗ. Но с задачей справлялся. В логике пришлось опрашивать на КЗ только когда кондей достаточно разрядится после подачи команды...
a123-flex
Цитата(Эдди @ Jun 14 2017, 23:19) *
У них еще бывают проблемы на нормальной скорости с концевиков съехать. Поэтому в предыдущей железяке мне пришлось делать простенькое управление разгоном.

по ходу кто-то пытался односкоростную коробку скоростей изобрести)

Цитата(Эдди @ Jun 14 2017, 23:19) *
Вот чтобы с такой неприятной бякой не возиться, лучше сразу драйвер взять, который умеет разгон/торможение и детектирование всяких неприятностей.

за исключением последних тринамиков, из ИНТЕГРАЛЬНЫХ драйверов никто насколько знаю не умеет сам разгон торможение делать, да и тринамик не рампу исполняет, а только генерирует себе сам импульсы дробления шага, работая в микрошаговом режиме с большим коэффициентом деления (avr контроллеры, которых во множестве для всяких 3d принтерах не могут импульсов давать больше 40 Кгц, а в режиме дробления на 128 получится улитка, вот тринамик и генерирует ЗАПОЛНЕНИЕ импульса).
Рампу всегда отрабатывает контроллер, и без нее от шагового привода добиться приличных скоростей невозможно, дабы с моментом у ШД из всех приводов хуже всего, насколько я понимаю.

Всякие навороченные драйверы-модули - типа leadshine и тех же тринамиков другое. Но они со своими фишками больше похожи на сервопривод - такой привод называется уже гибридным шаговым - там в одном флаконе может быть и рампа и энкодер и антирезонанс и дробление и конский ценник и габарит.

Тут уж на любителя, и существенно зависит все от контроллера верхнего уровня - что он понимает и может.

Цитата(Эдди @ Jun 14 2017, 23:19) *
Другой неприятностью было управление затвором на TLE5205: я через него разряжал кондей 2200мкФ на обмотку затвора, так мост в первые миллисекунды думал, что в цепи КЗ. Но с задачей справлялся. В логике пришлось опрашивать на КЗ только когда кондей достаточно разрядится после подачи команды...

В современных интегральных драйверах столько клевых фенечек (например микрошаг/ослабление тока удержания в простое), и они такие дешевые, что пытаться слепить что-то такое на коленке имеет смысл только космоса ради, как khach например.
Эдди
Цитата(a123-flex @ Jun 15 2017, 01:34) *
(avr контроллеры, которых во множестве для всяких 3d принтерах не могут импульсов давать больше 40 Кгц, а в режиме дробления на 128 получится улитка, вот тринамик и генерирует ЗАПОЛНЕНИЕ импульса).

Этим говном я пользоваться не собираюсь, обычно использую для CLK генерацию с таймера на STM32 — а там и 16МГц не проблема. Но в реальности движки быстрей 500 шагов в секунду не могут делать, т.е. даже на дроблении 1/256 нужно не больше 128кГц выдавать.
А насчет "авторазгона", похоже, плохо я даташит почитал. Что-то я думал, что кое-какие последние тринамики вообще не нуждаются в сигналах CLK/DIR и тупо по SPI работают.
Но это не беда: при помощи коротенького массива (uint32_t членов на 16) и DMA можно разгон-торможение элементарно реализовать. Плохо только, что для счета шагов нужно еще один таймер заводить. Ну или в прерывании колупаться.
Цитата
В современных интегральных драйверах столько клевых фенечек (например микрошаг/ослабление тока удержания в простое), и они такие дешевые, что пытаться слепить что-то такое на коленке имеет смысл только космоса ради, как khach например.

В случае затвора современные драйвера не спасут, т.к. там нужно генерировать короткий импульс прямой или обратной полярности с довольно высокой напругой (24-36В) и длительностью чуть ли не до сотни миллисекунд. А некоторые затворы нужно еще и удерживать в крайнем положении низким напряжением (3..5В).
a123-flex
Цитата(Эдди @ Jun 15 2017, 09:51) *
Этим говном я пользоваться не собираюсь, обычно использую для CLK генерацию с таймера на STM32 — а там и 16МГц не проблема.

Я бы вот так словами не бросался, не зная броду. Понимаю, avr сейчас звучит смешно, но те кто реализовывал в них стеки - молодцы.
Те, кто с пеной у рта рассуждает о ПЛИС или АРМе, редко задумываются, что огромные возможности этого железа часто ненужный избыток...

Цитата(Эдди @ Jun 15 2017, 09:51) *
Но в реальности движки быстрей 500 шагов в секунду не могут делать, т.е. даже на дроблении 1/256 нужно не больше 128кГц выдавать.

Тут я бы тоже не горячился. Все от механики зависит, при нормальном управлении на ремнях можно двигаться гораздо быстрее - до 2 кГц минимум...

Цитата(Эдди @ Jun 15 2017, 09:51) *
А насчет "авторазгона", похоже, плохо я даташит почитал. Что-то я думал, что кое-какие последние тринамики вообще не нуждаются в сигналах CLK/DIR и тупо по SPI работают.

абсолютно нет. SPI интерфейс для сервисов только.
Под авторазгоном подразумевается изменение частоты ЗАПОЛНЕНИЯ ВНУТРИ ИМПУЛЬСА.

Цитата(Эдди @ Jun 15 2017, 09:51) *
Но это не беда: при помощи коротенького массива (uint32_t членов на 16) и DMA можно разгон-торможение элементарно реализовать. Плохо только, что для счета шагов нужно еще один таймер заводить. Ну или в прерывании колупаться.

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

Хотите увидеть все вместе во всей красе - скачайте исходники LinuxCnc(Emc2).
Еще раз повторюсь - современное решение управления приводом в станке - полноценный 3 уровневый стек, я бы оценил трудоемкость в 2-3 года профессионального программиста.

Ну и напоследок задумайтесь над одним фактом. Качественный разгон - с непрерывно изменяющимся шагом. Современные драйвера дают микрошаг 128. Хороший станок гонится до 3 кГц.
Автогенерация заполнения тринамика как по мне мутная вода - они там сами себе аппроксимируют ВАШЕ изменение частоты - че они напридумывают большой вопрос, а у вас траектория определена строго.

Это значит в идеале вы должны получить плавно возрастающую частоту от 0 до 384 кГц (помножить на 3 оси минимум)), при этом фишка автоматического инкремента периода таймера не катит, тк ограничивает допустимые ускорения - значит вы будете терять в производительности машины...
Как Вы сгенерите такое таймером STM ?

Но и это еще цветочки. А как насчет кривых ? А еще интереснее кривые по траектории со строго определенной скоростью (задача дозирования клея/..., фрезерование) ?
Тут уже и STM может мало показаться, dsp нужен, и таймер вообще ни о чем.

Короче я хочу сказать, что начиная решать такие задачи, Вы должны точно понимать, какой результат Вам нужен. 70% поля покрывает AVR, а специфические задачи требуют таких затрат, что прежде нужно тщательно считать купляшки, дабы не бросить все посередине.

Цитата(Эдди @ Jun 15 2017, 09:51) *
В случае затвора современные драйвера не спасут, т.к. там нужно генерировать короткий импульс прямой или обратной полярности с довольно высокой напругой (24-36В) и длительностью чуть ли не до сотни миллисекунд. А некоторые затворы нужно еще и удерживать в крайнем положении низким напряжением (3..5В).

У современных интегральных драйверов никакого затвора нет - только step/dir. Многие позволяют рабочее напряжение 36В и выше.
Эдди
Цитата(a123-flex @ Jun 15 2017, 10:00) *
Но все же я не понимаю, зачем Вы сами поднимали этот проект, если есть куча готовых реализаций.

Ни одной подходящей не встречал: ни под STM32, ни даже под STM8. Поэтому сам делал.
Сейчас я вообще решил отказаться от opencm3 и накапливаю себе сниппеты.
Цитата
Как только вы начнете отрабатывать точные траектории в n координатах с рампами

Не, свой ЧПУ на STM32 — у меня только в далеких планах. И то, до этого хочу "дофигометр" сделать (потому как единственный мне известный собран на дебильных аврках).
Цитата
Хотите увидеть все вместе во всей красе - скачайте исходники LinuxCnc(Emc2).

Все эти извращения лишь из-за того, что ЧПУ до сих пор делают на древнючих аврках, иначе не пришлось бы так выпендриваться!
Цитата
Еще раз повторюсь - современное решение управления приводом в станке - полноценный 3 уровневый стек, я бы оценил трудоемкость в 2-3 года профессионального программиста.

Ну, я не профессиональный. И тем паче не программист. Но при занятости 8/5 все-таки, сдается мне, можно полноценное управление ЧПУ и за год сделать!
Цитата
У современных интегральных драйверов никакого затвора нет - только step/dir. Многие позволяют рабочее напряжение 36В и выше.

Ну и смысл использовать драйвер ШД для генерирования одного импульса?
a123-flex
Цитата(Эдди @ Jun 15 2017, 10:35) *
Ни одной подходящей не встречал: ни под STM32, ни даже под STM8. Поэтому сам делал

да, под STM нет. Почему-то его станочники не любят. Есть порты avr на LPC.

Цитата(Эдди @ Jun 15 2017, 10:35) *
Все эти извращения лишь из-за того, что ЧПУ до сих пор делают на древнючих аврках, иначе не пришлось бы так выпендриваться!

Вы как жену выбираете - Вам шашечки нужно, или ехать ?

Цитата(Эдди @ Jun 15 2017, 10:35) *
Ну, я не профессиональный. И тем паче не программист. Но при занятости 8/5 все-таки, сдается мне, можно полноценное управление ЧПУ и за год сделать!

у вас же стоит в планах. Вот и расскажете нам потом. Сколько Вы кстати УЖЕ потратили ?

Цитата(Эдди @ Jun 15 2017, 10:35) *
Ну и смысл использовать драйвер ШД для генерирования одного импульса?

тупо дешевле, чем Ваш мост - разный объем продаж)
dinam
Цитата(Эдди @ Jun 15 2017, 13:51) *
Но в реальности движки быстрей 500 шагов в секунду не могут делать, т.е. даже на дроблении 1/256
Странно, если посмотрите мои сообщения, то увидите, что я хвастался(удивлялся), что мне иногда удаётся раскрутить ШД до 100 об/сек и даже выше. Если попадается удачная механика, типа двухкоординатных столиков или электромеханический привод EPCO фирмы Фесто, то скорость в рабочих режимах может доходить до 40-50 об/сек.
Цитата(Эдди @ Jun 15 2017, 14:35) *
Ну и смысл использовать драйвер ШД для генерирования одного импульса?
Ну вот, наверно, люди типа меня и применяют такие драйверы, чтобы была возможность крутить ШД на таких скоростях.
Tanya
Цитата(a123-flex @ Jun 15 2017, 10:00) *
Ну и напоследок задумайтесь над одним фактом. Качественный разгон - с непрерывно изменяющимся шагом. Современные драйвера дают микрошаг 128. Хороший станок гонится до 3 кГц.

Это значит в идеале вы должны получить плавно возрастающую частоту от 0 до 384 кГц (помножить на 3 оси минимум)), при этом фишка автоматического инкремента периода таймера не катит, тк ограничивает допустимые ускорения - значит вы будете терять в производительности машины...
Как Вы сгенерите такое таймером STM ?

Ускорение не может быть произвольным - чем выше скорость, тем меньше допустимое ускорение. Напомню - мощность - произведение скорости на силу (ускорение).
У меня есть таблица задержек между шагами - вот по ней и двигаю(сь) в любую сторону при разгоне и торможении.
И она поддерживает максимальную мощность.
Еще скажу, что не верю, что драйвер может быть сам-собой такой умный, что отличит заклинивание от большого момента инерции.
a123-flex
Цитата(Tanya @ Jun 15 2017, 12:05) *
Ускорение не может быть произвольным - чем выше скорость, тем меньше допустимое ускорение. Напомню - мощность - произведение скорости на силу (ускорение).
У меня есть таблица задержек между шагами - вот по ней и двигаю(сь) в любую сторону при разгоне и торможении.
И она поддерживает максимальную мощность.

я именно об этом и говорил - о проблеме использования автоинкремента таймера на высоких скоростях

Цитата(Tanya @ Jun 15 2017, 12:05) *
Еще скажу, что не верю, что драйвер может быть сам-собой такой умный, что отличит заклинивание от большого момента инерции.

Мы не в церкви. Я привел цитаты из datasheet, дальше нужно не верить, а проверять.
Конечно, это не будет просто, тк подход сильно костыльный. Но защит мало не бывает.
Эдди
Цитата(dinam @ Jun 15 2017, 11:34) *
Странно, если посмотрите мои сообщения, то увидите, что я хвастался(удивлялся), что мне иногда удаётся раскрутить ШД до 100 об/сек и даже выше.

Разные варианты я проверял, вплоть до дробления шага на 16 — все равно основные ШД, что мы используем (в станде закупаем, на 0.5..1.5А) быстрей 500шагов в секунду не способны сделать. Что-то попадалось, что на 800 крутилось, но момент там совсем никакущий был.

Для примера — анализ вакуумного VSS42. Наибольший момент (~600 г·см) у него на скоростях 100-200 шагов в секунду. На 500 момент спадает до 300-400. Можно, конечно, задрать ток, но пришлось бы слишком сложную логику городить, чтобы на малых оборотах ток не превышал 1А (даже при таком токе движки сильно греются), а на больших уже до трех доходил.
a123-flex
Цитата(Эдди @ Jun 15 2017, 12:15) *
Разные варианты я проверял, вплоть до дробления шага на 16 — все равно основные ШД, что мы используем (в станде закупаем, на 0.5..1.5А) быстрей 500шагов в секунду не способны сделать. Что-то попадалось, что на 800 крутилось, но момент там совсем никакущий был.

Для примера — анализ вакуумного VSS42. Наибольший момент (~600 г·см) у него на скоростях 100-200 шагов в секунду. На 500 момент спадает до 300-400. Можно, конечно, задрать ток, но пришлось бы слишком сложную логику городить, чтобы на малых оборотах ток не превышал 1А (даже при таком токе движки сильно греются), а на больших уже до трех доходил.

так это и есть проблема шаговика - падения момента с увеличением скорости....dinam Вам уже написал, мне что, нужно ссылки искать, чтобы показать Вам как работают машины на 2-3 кгц ?
http://www.cnczone.ru/forums/index.php%3Fshowtopic%3D2989
khach
В качественном станке в какой-то момент отказываются от шаговых моторов и переходят на серводвигатели. Которые как раз гонятся до очень больших скоростей. Сейчас найти серводвигатель от автоматических дверей не представляет никаких проблем. Для небольших станков они прекрасно подходят по мощности и моменту.
Цитата
Для примера — анализ вакуумного VSS42.

О, знакомый движок. Вы только его не на воздухе мучайте, а в вакууме. Окажется, что поднимать ток некуда, а вообще то надо снижать, иначе обмотки перегреются. Как раз для подобного движка и городили контроллер с измерением температуры обмоток по их сопротивлению.
a123-flex
Цитата(khach @ Jun 15 2017, 12:34) *
В качественном станке в какой-то момент отказываются от шаговых моторов и переходят на серводвигатели.

ценник при этом сразу умножается на 10

Цитата(khach @ Jun 15 2017, 12:34) *
Сейчас найти серводвигатель от автоматических дверей не представляет никаких проблем.

Любопытно. А как называется ?
khach
Цитата(a123-flex @ Jun 15 2017, 11:40) *
Любопытно. А как называется ?

В основном мне попадались SEM HR70 в разных исполнениях. Момент обычно 0.6-1.2 НМ. Для мелких станков вполне достаточно для прямого привода, а для чуть более крупных- редуктор на передаче на зубчатом ремне.
Ценник растет в 10 раз при наличии исправного контроллера. А без контроллера или с неисправным ценник намного гуманнее. Контроллер для точного позиционирования желательно делать свой, например со вторым каналам обратной связи по оптическим линейкам. Можно получить точности позиционирования 10 мк и менее. Но тогда цена механики летит вверх с страшной скоростью. Например нужны двойные гайки на ШВП с компенсацией люфтов и преднатягом.
ЗЫ. Видел попытки приспособить BLDC двигатели от автомобильных электроусилителей руля. Они низковольтные, но жрут огромный ток, и вал скорее всего придется перепрессовывать.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.