Про микрошаг и синус с косинусом

ATLab

Это практически полный дубль моего поста на cnczone.ru (www.cnczone.ru/forums/index.php?showtopic=178&view…) для расширения аудитории.

Давно собирался, да руки вот только дошли покрутить на ШД лазерную указку: проверить теорию (формирование микрошагов ШД с помошью отсчетов SIN/COS) практикой.
Одним из поводов к такой проверке послужила статья
www.romanblack.com/stepper.htm
я ее уже упоминал. Там из векторной диаграммы следует, что значения токов для равномерных микрошагов должны быть не совсем SIN/COS.
С другой стороны опыты юзеров с лазерной указкой (в ветке про A3986 на cnczone.com) показали неравномерность микрошагов.

Исходные данные для эксперимента:

  • униполярный ШД 42 мм, шаг 1,8 градуса, с лазером на валу, закреплен в поворотных тисках
  • расстояние от вала до стены, на которой делалась разметка микрошагов, примерно 3,87 м, imho этого достаточно, чтобы не заморачиваться с выгибанием шкалы по окружности
  • микрошаг сделан 1/9 для получения поворота ротора ШД на 0,2 градуса
  • дистанция двух полных шагов на шкале 243 мм, отсюда один микрошаг 13,5 мм, разметка шкалы равномерная на 4 полных шага (точнее ±2шага относительно центра), без учета геометрических искажений на краях
  • драйвер ШД мой самодельный, с ШИМ, разрядность ЦАП - 8 бит, прошивка управляющего МК в нем переделана для непосредственного задания токов в обмотках ШД и фаз с компьютера по RS232.

Что в результате обнаружено:

  1. шаги отличаются друг от друга - погрешность в изготовлении ШД - довольно заметно
  2. из-за особенностей ШД (униполярный) полная циклограмма токов в обмотках (хранимая в ПЗУ ШД) должна быть равна 4 полным шагам (из-за разброса параметров обмоток)
  3. графики токов в обмотках ШД “несколько не похожи” на SIN/COS - скорее это тангенс/котангенс.
  4. промежуточные положения вала ШД (микрошаги) черезвычайно неустойчивы, графики сняты с нулевой нагрузкой, я планирую еще снять графики с установленным на вал вращающимся вакуумным соединителем - дополнительная нагрузка будет не слишком большая, зато реальная.

Выводы:

  1. нефиг маяться дурью с использованием микрошагов для точного позиционирования: шаг или полушаг это то, что можно получить без особых заморочек и с гарантированным результатом.
  2. проверить бы еще на 57 мм ШД (дойдут ли руки…), может там все не так остро будет выглядеть из-за разницы в размерах.

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

Ну и напоследок картинка:

  • по X - номера микрошагов
  • по Y - код ЦАП, максимальное значение кода 255 соответствует току 0,75 А

Creolka
ATLab:
  1. шаги отличаются друг от друга - погрешность в изготовлении ШД - довольно заметно

Это на стенке заметно, т.к. масштаб получается 1:1290 (примерно),
А в реальной ситуации эта величина настолько мала что даже и говорить про это
не стоит! Цена одного шага - 0.0025мм и разброс даже в 10% ничего не меняет.
(Это я про свой станок).
А микро-шаг надо использовать, намного приятнее/спокойнее/ровнее работает машина.

ATLab
Creolka:

Это на стенке заметно, т.к. масштаб получается 1:1290 (примерно),
А в реальной ситуации эта величина настолько мала что даже и говорить про это
не стоит! Цена одного шага - 0.0025мм и разброс даже в 10% ничего не меняет.
(Это я про свой станок).
А микро-шаг надо использовать, намного приятнее/спокойнее/ровнее работает машина.

Это заметно не только на стенке: достаточно к ротору ШД прикрепить разогнутую скрепку и задать частоту STEP примерно 10 Гц.

И, похоже, Вы неправильно поняли смысл моего поста.
Попробую объясниться подробнее.

  1. Я НЕ против микрошага, как средства
  • сделать вращение ротора более плавным
  • борьбы с НЧ резонансами
  1. Я всегда был противником использования микрошага для позиционирования.

  2. Традиционное использование отсчетов SIN/COS для формирования микрошага приводит к тому, что часть отсчетов вообще не работает, импульсы STEP идут, а ротор не вращается.
    Например, возьмем дробление 1/10 (близкое к тому, что я делал), отсчеты (приведенные к максимуму равному 255) будут
    0 , 40 , 79 , 116 , 150 , 180 , 206 , 227 , 243 , 252 , 255
    Из приведенных графиков следует, что отсчеты SIN
    40 , 79 , 227 , 243 , 252 практически бесполезны.
    Из 10 микрошагов фактически работают только 5, половина!

  3. Я исследование затевал по нужде: нет у меня пока возможности механической передачей уменьшить угол поворота, вот и пришлось поизвращаться. Отсюда и вывод:
    “…1. нефиг маяться дурью с использованием микрошагов для точного позиционирования” - из первого моего поста.

Dominator
ATLab:
  1. Я НЕ против микрошага, как средства
  • сделать вращение ротора более плавным
  • борьбы с НЧ резонансами
  1. Я всегда был противником использования микрошага для позиционирования.
    “…1. нефиг маяться дурью с использованием микрошагов для точного позиционирования” - из первого моего поста.

Открыли америку 😁 , некто и неиспользует микрошаг для повышения точности , его используют для борьбы с резонансами и мягкости хода .

Аэробус

Не совсем понял, как это на практике работает. 😦
Мач настроен допустим на 2000 шагов на один оборот. Теперь для передвижения на N мм, Мач выдает скажем 3456 импульсов. И в общем то не известно на каком микрошаге шаговик станет в удержание. Это может и целый шаг и пол шага и 1/7 шага? Или имеется в виду не делать дробления шага больше чем на 1/2-ю?
Но, тогда вопрос другой, Фрезеруем алюминий, отверстие поод посадку подшипника. С точностью 0.01. Станок имеет винт шагом 10мм. Контроллер полношаговый. При 200 шагах имеем точность 0.05 И как тогда попасть в размер?
Возвращаемся к 297-м, 298-м микрухам и не паримся с процами, микрошаговыми спецмикрухами…? 😃

Dominator
Аэробус:

При 200 шагах имеем точность 0.05 И как тогда попасть в размер?

Использовать полушаг ( а лучше 1/8 шаг ) и ШВП с шагом 5 мм , тогда точность будет 0,0125 ( как раз под посадку подшипника ) , все просто 😉 . Но мне кажется с вашим деревянным станком о посадках под подшипник лучше забыть , хоть с шагом , хоть с микрошагом .

Soling
Аэробус:

Не совсем понял, как это на практике работает. 😦
😃

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

ATLab
Аэробус:

Не совсем понял, как это на практике работает…

Я же написал, про простейшую проверку, без лазера: на вал прикрепить какой-нибудь указатель-стрелку 50…250… 😃 мм и покрутить ШД в микрошаге не торопясь - 5…20 STEP/сек. Сразу становится заметной неравномерность вращения.

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

Возвращаемся к 297-м, 298-м микрухам и не паримся с процами, микрошаговыми спецмикрухами…?

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

Soling
ATLab:

Сразу становится заметной неравномерность вращения.

О какой неравномерности Вы говорите? Ошибка позиционирования по шагам оговаривается в характеристиках двигателя. Неравномерность движения не может превышать ее величины. А она весьма мала. И не факт, что она не увеличится при переходе на микрошаг, за счет, например, не совершенства управления.
Рывки и гладкость движения… ну, возьмем простой расчет: шаг = 10 мм. 200 шагов на оборот. Итого: 10 / 200= 0,05 мм. на шаг. Это при прямом приводе. Не думаю, что рывки такой величины будут сильно заметны. Может их причина в чем то другом?
А точность позиционирования уже при таком даже раскладе будет зависить от точности механики. Простейший станок вряд ли выдержит и эти 5 соток.

georgnsk

Причина видимо в неравномерной начальной намагниченности системы. Интересно, а в пресловутых ШД-5 равномерность лучше? Ведь там постоянных магнитов нет.

spike

А как вы думаете ведет себя ШД на скорости? Ведь ротор имеет инерцию и он не будет притормаживаться там где микрошаги “короткие” (и тем более останавливаться). Это совершенно понятно что погрешности изготовления и темные силы электромагнетизма не дают точного синуса, но вот эти самые кривости и составляют потери в КПД моторов в динамике. Т.е. синус - это идеализированная форма кривой. А вот если ее (форму) менять в зависимости от скорости, то, вероятно это бы весьма было бы полезно для повышения КПД.

Soling
spike:

А как вы думаете ведет себя ШД на скорости?

Как бы нам не запутыркаться. 😁
КПД двигателя зависит от его исполнения. В частности от величины зазора, например. Это показатель величины потерь в нем.
Теперь о динамике. Здесь речь, наверное, об устойчивости работы.
Получается, что Вы, используя микрошаг, в сочетании с инерцией, пытаетесь приблизить его к обычному не дискретному двигателю.
Хорошо ли это? Да, в каком то диапазоне скоростей он будет вести себя прилично. Но, при снижении скорости глюки появятся опять. А шаговики привлекательны именно возможностью работать от единиц шагов до максимума.
Похоже с этой проблемой столкнулся мой знакомый. Китайский двигатель, тип не знаю, работал рывками на низкой скорости. При замене его на ДШИ все стало красиво и гладко.

mura

Ну о чем вы спорите, производитель четко дает механическую погрешность,
обычно это 5% для полного шага, все тут сказано хоть на 1000 дроби - точнее не
будет, как тут многократно говорили - микрошаг для избегания резонанса и для плавности хода на малых скоростях,
и совсем НЕ ДЛЯ УВЕЛИЧЕНИЯ ТОЧНОСТИ.

Вот ссылка на моторы где приводятся точностные хар-ки (2-я строка)
www.cnsoyo.com/cp_1_10_e.asp

spike
Soling:

В частности от величины зазора, например

Конечно же, но это в частности.

Soling:

…используя микрошаг, в сочетании с инерцией, пытаетесь приблизить его к обычному не дискретному двигателю

Шаговый двигатель это не дискретная машина - это синхронных двигатель, но ее можно использовать как дискретную, подавая дискретно изменяющиеся токи в обмотки. Собственно, увеличение кратности микрошага, в пределе до бесконечности, сразу же возвратит мотору его аналоговость 😃
Исходя из принципа действия синхронной машины (идеальной конечно) ШД (идеальный) обязан хорошо и предсказуемо точно работать при идеальном синусе.

Кстати, Анатолий, а точность вашего ЦАП какова, а особенно на краях диапазона? быть может не только и не столько в моторе дело?

Soling

Да, собственно и не спорим мы. Мне вот интересно откуда ноги растут у сбоев в этих системах. Сам тоже когда то сталкивался с этим при замене двигунов разных типов.

“Дискретный - не дискретный” я взял для удобства. Все же ШД больше рассчитаны на пошаговый режим. Собственно, в этом их прелесть и есть.

spike
Soling:

“Дискретный - не дискретный” я взял для удобства

Конечно, я просто уточнил…

Soling
spike:

Конечно, я просто уточнил…

Прошу простить… не сразу въехал… Мне кажется, рассуждение не корректно.
ШД по конструкции изначально заточен под дискрет. В этом его смысл. Заставлять его работать в аналоговом режиме - это уже искусственное. Так же, как и дробление. К стати, никто не гарантирует точности позиционирования на дробленый шаг. Это заблуждение. Гарантирована точность полного шага. А дробление зависит от управления и не думаю, что кто то из изготовителей двигателя возьмется за него отвечать.
По работе на синусе: может я плохо смотрел, но в доках приводятся графики только дискретных сигналов управления. Остальное, хоть и имеет право на жизнь, безусловно, но не естественно для этих машин.
Сбои появляются именно в основном режиме полного шага. Так что хочется выяснить их природу именно в нем. Лечение проблемы переходом на микрошаг, даже если помогает, не видится правильным.

Аэробус
ATLab:

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

Т.е. если я планировал поворотную ось посадить напрямую на шаговик (без редуктора), и “порезать” шаг на 20,то выходит можно с этим и не париться? Все равно буит чтото около 400 шагов(полушаг) заместо желаемых 4000? Мдя… тогда буду морочиться с редуктором… Блин ужо детали порезал и собрал почти. 😃

ATLab
spike:

Кстати, Анатолий, а точность вашего ЦАП какова, а особенно на краях диапазона? быть может не только и не столько в моторе дело?

ЦАП сделан на базе ШИМ в МК, разрядность ЦАП 8 бит. Думаю, дело не в точности ЦАП: практически бесполезные участки в моем случае 0-90, 210 - 255.
Почитайте, наконец, статью из первого поста ветки - там картинка похожая, только графики приведены в виде векторной диаграммы. На них тоже хорошо видно, что микрошаги вблизи позиций полного шага (устойчивого положения полюсов) сползают к этим позициям.

mura:

Ну о чем вы спорите, производитель четко дает механическую погрешность, обычно это 5% для полного шага…

Именно так: погрешность величин соседних шагов составила примерно 4 %.

Soling:

…ШД по конструкции изначально заточен под дискрет. Заставлять его работать в аналоговом режиме - это уже искусственное. Так же, как и дробление. К стати, никто не гарантирует точности позиционирования на дробленый шаг. Это заблуждение. Гарантирована точность полного шага. А дробление зависит от управления и не думаю, что кто то из изготовителей двигателя возьмется за него отвечать…

Да, вроде, никто не оспаривает этого 😃
Хотя Марисс на cnczone.com (автор Gecko, если кто не знает) сильно плевался по поводу кривого микрошага на A3986 - аналогичные опыты с лазерной указкой - дескать, производители микросхем драйверов понимают толк лишь в продаже микросхем и нифига не понимают в управлении ШД. Интересно было бы покрутить с лазером его Gecko: его красивые картинки тока в обмотках ШД выглядят чисто как синус.

Аэробус:

Мдя… тогда буду морочиться с редуктором…

C одной стороны - увы, с другой стороны - редуктор тебе даст гарантию.
Не жалей, все равно пришлось бы переделывать! 😉

mura

Хотя Марисс на cnczone.com (автор Gecko, если кто не знает) сильно плевался по поводу кривого микрошага на A3986

Кстати кривая тока у 3986 очень похожа на ту, что в первом посте 😛

Dj_smart

Вопрос для общего развития:
Будет ли наблюдаться такая-же картина, если ключи будут работать в линейном режиме? Без ШИМ, и пр.? Тоесть убрать дискретность?

Soling

Без ШИМ картина может пропасть в дыму.

Dj_smart
Soling:

Без ШИМ картина может пропасть в дыму.

Имелось ввиду что ток максимальный для движка, выставлен напряжением питания, и скорость по минимуму.

Soling
Dj_smart:

Имелось ввиду что ток максимальный для движка, выставлен напряжением питания, и скорость по минимуму.

На старых машинках ток ограничивали добавочными “утюгами” - резисторами.
Работало все не плохо. А напряжением ограничить ток не получится. Оно должно быт номинальным.

Dominator
Soling:

На старых машинках ток ограничивали добавочными “утюгами” - резисторами.
Работало все не плохо. А напряжением ограничить ток не получится. Оно должно быт номинальным.

Ну и … если не использовать ШИМ интересно микрошаг будет точнее ?