Контроллер шагового двигателя.

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

Что такое шаговый двигатель, и зачем он нужен?

Шаговый двигатель – это электромеханичское устройство, которое преобразует электрические импульсы в дискретные механические перемещения. Так, пожалуй, можно дать строгое определение. Наверное, каждый видел, как выглядит шаговый двигатель внешне: он практически ничем не отличается от двигателей других типов. Чаще всего это круглый корпус, вал, несколько выводов (рис. 1).

Рис. 1. Внешний вид шаговых двигателей семейства ДШИ-200.

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

Чем же хорош шаговый двигатель?

Но не все так хорошо...

Что выбрать?

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

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

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

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

Виды шаговых двигателей

Существуют три основных типа шаговых двигателей:

Определить тип двигателя можно даже на ощупь: при вращении вала обесточенного двигателя с постоянными магнитами (или гибридного) чувствуется переменное сопротивление вращению, двигатель вращается как бы щелчками. В то же время вал обесточенного двигателя с переменным магнитным сопротивлением вращается свободно. Гибридные двигатели являются дальнейшим усовершенствованием двигателей с постоянными магнитами и по способу управления ничем от них не отличаются. Определить тип двигателя можно также по конфигурации обмоток. Двигатели с переменным магнитным сопротивлением обычно имеют три (реже четыре) обмотки с одним общим выводом. Двигатели с постоянными магнитами чаще всего имеют две независимые обмотки. Эти обмотки могут иметь отводы от середины. Иногда двигатели с постоянными магнитами имеют 4 раздельных обмотки.

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

Двигатели с переменным магнитным сопротивлением

Шаговые двигатели с переменным магнитным сопротивлением имеют несколько полюсов на статоре и ротор зубчатой формы из магнитомягкого материала (рис. 2). Намагниченность ротора отсутствует. Для простоты на рисунке ротор имеет 4 зубца, а статор имеет 6 полюсов. Двигатель имеет 3 независимые обмотки, каждая из которых намотана на двух противоположных полюсах статора. Такой двигатель имет шаг 30 град.

Рис. 2.  Двигатель с переменным магнитным сопротивлением.

При включени тока в одной из катушек, ротор стремится занять положение, когда магнитный поток замкнут, т.е. зубцы ротора будут находиться напротив тех полюсов, на которых находится запитанная обмотка. Если затем выключить эту обмотку и включить следующую, то ротор поменяет положение, снова замкнув своими зубцами магнитный поток. Таким образом, чтобы осуществить непрерывное вращение, нужно включать фазы попеременно. Двигатель не чувствителен к направлению тока в обмотках. Реальный двигатель может иметь большее количество полюсов статора и большее количество зубцов ротора, что соответствует большему количеству шагов на оборот. Иногда поверхность каждого полюса статора выполняют зубчатой, что вместе с соответствующими зубцами ротора обеспечивает очень маленькое значения угла шага, порядка нескольких градусов. Двигатели с переменным магнитным сопротивлением довольно редко используют в индустриальных применениях.

Двигатели с постоянными магнитами

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

Рис. 3.  Двигатель с постоянными магнитами.

Показанный на рисунке двигатель имеет 3 пары полюсов ротора и 2 пары полюсов статора. Двигатель имеет 2 независимые обмотки, каждая из которых намотана на двух противоположных полюсах статора. Такой двигатель, как и рассмотренный ранее двигатель с переменным магнитным сопротивлением, имеет величину шага 30 град. При включени тока в одной из катушек, ротор стремится занять такое положение, когда разноименные полюса ротора и статора находятся друг напротив друга. Для осуществления непрерывного вращения нужно включать фазы попеременно. На практике двигатели с постоянными магнитами обычно имеют 48 – 24 шага на оборот (угол шага 7.5 – 15 град).

Разрез реального шагового двигателя с постоянными магнитами показан на рис. 4.

Рис. 4.  Разрез шагового двигателя с постоянными магнитами.

Для удешевления конструкции двигателя магнитопровод статора выполнен в виде штампованного стакана. Внутри находятся полюсные наконечники в виде ламелей. Обмотки фаз размещены на двух разных магнитопроводах, которые установлены друг на друге. Ротор представляет собой цилиндрический многополюсный постоянный магнит.

Двигатели с постоянными магнитами подвержены влиянию обратной ЭДС со стороны ротора, котрая ограничивает максимальную скорость. Для работы на высоких скоростях используются двигатели с переменным магнитным сопротивлением.

Гибридные двигатели

Гибридные двигатели являются более дорогими, чем двигатели с постоянными магнитами, зато они обеспечивают меньшую величину шага, больший момент и большую скорость. Типичное число шагов на оборот для гибридных двигателей составляет от 100 до 400 (угол шага 3.6 – 0.9 град.). Гибридные двигатели сочетают в себе лучшие черты двигателей с переменным магнитным сопротивлением и двигателей с постоянными магнитами. Ротор гибридного двигателя имеет зубцы, расположенные в осевом направлении (рис. 5).

Рис. 5.  Гибридный двигатель.

Ротор разделен на две части, между которыми расположен цилиндрический постоянным магнит. Таким образом, зубцы верхней половинки ротора являются северными полюсами, а зубцы нижней половинки – южными. Кроме того, верхняя и нижняя половинки ротора повернуты друг относительно друга на половину угла шага зубцов. Число пар полюсов ротора равно количеству зубцов на одной из его половинок. Зубчатые полюсные наконечники ротора, как и статор, набраны из отдельных пластин для уменьшения потерь на вихревые токи. Статор гибридного двигателя также имеет зубцы, обеспечивая большое количество эквивалентных полюсов, в отличие от основных полюсов, на которых расположены обмотки. Обычно используются 4 основных полюса для 3.6 град. двигателей и 8 основных полюсов для 1.8- и 0.9 град. двигателей. Зубцы ротора обеспечивают меньшее сопротивление магнитной цепи в определенных положениях ротора, что улучшает статический и динамический момент. Это обеспечивается соответствующим расположением зубцов, когда часть зубцов ротора находится строго напротив зубцов статора, а часть между ними. Зависимость между числом полюсов ротора, числом эквивалентных полюсов статора и числом фаз определяет угол шага S двигателя:

S = 360/(Nph*Ph) = 360/N,

где Nph – чило эквивалентных полюсов на фазу = число полюсов ротора,
Ph – число фаз,
N - полное количество полюсов для всех фаз вместе.

Ротор показанного на рисунке двигателя имеет 100 полюсов (50 пар), двигатель имеет 2 фазы, поэтому полное количество полюсов – 200, а шаг, соответственно, 1.8 град.

Продольное сечение гибридного шагового двигателя показано на рис. 6. Стрелками показано направление магнитного потока постоянного магнита ротора. Часть потока (на рисунке показана черной линией) проходит через полюсные наконечники ротора, воздушные зазоры и полюсный наконечник статора. Эта часть не участвует в создании момента.

Рис. 6.  Продольный разрез гибридного шагового двигателя.

Как видно на рисунке, воздушные зазоры у верхнего и нижнего полюсного наконечника ротора разные. Это достигается благодаря повороту полюсных наконечников на половину шага зубъев. Поэтому существует другая магнитная цепь, которая содержит минимальные воздушные зазоры и, как следствие, обладает минимальным магнитным сопротивлением. По этой цепи замыкается другая часть потока (на рисунке показана штриховой белой линией), которая и создает момент. Часть цепи лежит в плоскости, перпендикулярной рисунку, поэтому не показана. В этой же плоскости создают магнитный поток катушки статора. В гибридном двигателе этот поток частично замыкается полюсными наконечниками ротора, и постоянный магнит его «видит» слабо. Поэтому в отличие от двигателей постоянного тока, магнит гибридного двигателя невозможно размагнитить ни при какой величине тока обмоток.

Величина зазора между зубцами ротора и статора очень небольшая – типично 0.1 мм. Это требует высокой точности при сборке, поэтому шаговый двигатель не стоит разбирать ради удовлетворения любопытства, иначе на этом его срок службы может закончиться.
Чтобы магнитный поток не замыкался через вал, который проходит внутри магнита, его изготавливают из немагнитных марок стали. Они обычно обладают повышенной хрупкостью, поэтому с валом, особенно малого диаметра, следует обращаться с осторожностью.

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

Существуют и другие конструкции шаговых двигателей. Например, двигатели с дисковым намагниченным ротором. Такие двигатели имеют малый момент инерции ротора, что в ряде случаев важно.

Большинство современных шаговых двигателей являются гибридными. По сути гибридный двигатель является двигателем с постоянными магнитами, но с большим числом полюсов. По способу управления такие двигатели одинаковы, дальше будут рассматриваться только такие двигатели. Чаще всего на практике двигатели имеют 100 или 200 шагов на оборот, соответственно шаг равен 3.6 грд или 1.8 грд. Большинство контроллеров позволяют работать в полушаговом режиме, где этот угол вдвое меньше, а некоторые контроллеры обеспечивают микрошаговый режим.

Биполярные и униполярные шаговые двигатели

В зависимости от конфигурации обмоток двигатели делятся на биполярные и униполярные. Биполярный двигатель имеет одну обмотку в каждой фазе, которая для изменения направления магнитного поля должна переполюсовывается драйвером. Для такого типа двигателя требуется мостовой драйвер, или полумостовой с двухполярным питанием. Всего биполярный двигатель имеет две обмотки и, соответственно, четыре вывода (рис. 7а).

Рис. 7.  Биполярный двигатель (а), униполярный (б) и четырехобмоточный (в).

Униполярный двигатель также имеет одну обмотку в каждой фазе, но от середины обмотки сделан отвод. Это позволяет изменять направление магнитного поля, создаваемого обмоткой, простым переключением половинок обмотки. При этом существенно упрощается схема драйвера. Драйвер должен иметь только 4 простых ключа. Таким образом, в униполярном двигателе используется другой способ изменения направления магнитного поля. Средние выводы обмоток могут быть объединены внутри двигателя, поэтому такой двигатель может иметь 5 или 6 выводов (рис. 7б). Иногда униполярные двигатели имеют раздельные 4 обмотки, по этой причине их ошибочно называют 4-х фазными двигателями. Каждая обмотка имеет отдельные выводы, поэтому всего выводов 8 (рис. 7в). При соответствующем соединении обмоток такой двигатель можно использовать как униполярный или как биполярный. Униполярный двигатель с двумя обмоткими и отводами тоже можно использовать в биполярном режиме, если отводы оставить неподключенными. В любом случае ток обмоток следует выбирать так, чтобы не превысить максимальной рассеиваемой мощности.

Биполярный или униполярный?

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

Момент, создаваемый шаговым двигателем, пропорционален величине магнитного поля, создаваемого обмотками статора. Путь для повышения магнитного поля – это увеличение тока или числа витков обмоток. Естественным ограничением при повышении тока обмоток является опасность насыщения железного сердечника. Однако на практике это ограничение действует редко. Гораздо более существенным является ограничение по нагреву двигателя вследствии омических потерь в обмотках. Как раз этот факт и демонстрирует одно из преимуществ биполярных двигателей. В униполярном двигателе в каждый момент времени используется лишь половина обмоток. Другая половина просто занимает место в окне сердечника, что вынуждает делать обмотки проводом меньшего диаметра. В то же время в биполярном двигателе всегда работают все обмотки, т.е. их использование оптимально. В таком двигателе сечение отдельных обмоток вдвое больше, а омическое сопротивление – соответственно вдвое меньше. Это позволяет увеличить ток в корень из двух раз при тех же потерях, что дает выигрыш в моменте примерно 40%. Если же повышенного момента не требуется, униполярный двигатель позволяет уменьшить габариты или просто работать с меньшими потерями. На практике все же часто применяют униполярные двигатели, так как они требуют значительно более простых схем управления обмотками. Это важно, если драйверы выполнены на дискретных компонентах. В настоящее время существуют специализированные микросхемы драйверов для биполярных двигателей, с использованием которых драйвер получается не сложнее, чем для униполярного двигателя. Например, это микросхемы L293E, L298N или L6202 фирмы SGS-Thomson, PBL3770, PBL3774 фирмы Ericsson, NJM3717, NJM3770, NJM3774 фирмы JRC, A3957 фирмы Allegro, LMD18T245 фирмы National Semiconductor.

Диаграммы, диаграммы...

Существует несколько способов управления фазами шагового двигателя.

Первый способ обеспечивается попеременной коммутации фаз, при этом они не перекрываются, в один момент времени включена только одна фаза (рис 8а). Этот способ называют ”one phase on” full step или wave drive mode. Точки равновесия ротора для каждого шага совпадают с «естественными» точками равновесия ротора у незапитанного двигателя. Недостатком этого способа управления является то, что для биполярного двигателя в один и тот же момент времени иcпользуется 50% обмоток, а для униполярного – только 25%. Это означает, что в таком режиме не может быть получен полный момент.

Рис. 8.  Различные способы управления фазами шагового двигателя.

Второй способ - управление фазами с перекрытием: две фазы включены в одно и то же время. Его называют ”two-phase-on” full step или просто full step mode. При этом способе управления ротор фиксируется в промежуточных позициях между полюсами статора (рис. 8б) и обеспечивается примерно на 40% больший момент, чем в случае одной включенной фазы. Этот способ управления обеспечивает такой же угол шага, как и первый способ, но положение точек равновесия ротора смещено на пол-шага.

Третий способ является комбинацией первых двух и называется полушаговым режимом, ”one and two-phase-on” half step или просто half step mode, когда двигатель делает шаг в половину основного. Этот метод управления достаточно распространен, так как двигатель с меньшим шагом стоит дороже и очень заманчиво получить от 100-шагового двигателя 200 шагов на оборот. Каждый второй шаг запитана лишь одна фаза, а в остальных случаях запитаны две (рис. 8в). В результате угловое перемещение ротора составляет половину угла шага для первых двух способов управления. Кроме уменьшения размера шага этот способ управления позволяет частично избавиться от явления резонанса. Полушаговый режим обычно не позволяет получить полный момент, хотя наиболее совершенные драйверы реализуют модифицированный полушаговый режим, в котором двигатель обеспечивает практически полный момент, при этом рассеиваемая мощность не превышает номинальной.

Еще один способ управления называется микрошаговым режимом или micro stepping mode. При этом способе управления ток в фазах нужно менять небольшими шагами, обеспечивая таким образом дробление половинного шага на еще меньшие микрошаги. Когда одновременно включены две фазы, но их токи не равны, то положение равновесия ротора будет лежать не в середине шага, а в другом месте, определяемом соотношением токов фаз. Меняя это соотношение, можно обеспечить некоторое количество микрошагов внутри одного шага. Кроме увеличения разрешающей способности, микрошаговый режим имеет и другие преимущества, которые будут описаны ниже. Вместе с тем, для реализации микрошагового режима требуются значительно более сложные драйверы, позволяющие задавать ток в обмотках с необходимой дискретностью. Полушаговый режим является частным случаем микрошагового режима, но он не требует формирования ступенчатого тока питания катушек, поэтому часто реализуется.

Держи его!

В полношаговом режиме с двумя включенными фазами положения точек равновесия ротора смещены на пол-шага. Нужно отметить, что эти положения ротор принимает при работе двигателя, но положение ротора не может сохраняться неизменным после выключения тока обмоток. Поэтому при включении и выключении питания двигателя ротор будет смещаться на пол-шага. Для того, чтобы он не смещался при остановке, необходимо подавать в обмотки ток удержания. То же справедливо и для полушагового и микрошагового режимов. Следует отметить, что если в выключенном состоянии ротор двигателя поворачивался, то при включении питания возможно смещение ротора и на большую, чем половина шага величину.

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

Полушаговый режим

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

Для двигателя, у которого запитана одна обмотка, зависимость момента от угла поворота ротора относительно точки равновесия является приблизительно синусоидальной. Эта зависимость для двухобмоточного двигателя, который имеет N шагов на оборот (угол шага в радианах S = (2*pi)/N), показана на рис. 9.

Рис. 9.  Зависимость момента от угла поворота ротора для одной запитанной обмотки.

Реально характер зависимости может быть несколько другой, что объясняется неидеальностью геометрии ротора и статора. Пиковое значение момента называется моментом удержания. Формула, описывающая зависимость момента от угла поворота ротора, имеет следующий вид:

T = - Th*sin((pi/2)/S)*Ф),

где T – момент, Th – момент удержания,
S – угол шага,
Ф – угол поворота ротора.

Если к ротору приложить внешний момент, который превышает момент удержания, ротор провернется. Если внешний момент не превышает момента удержания, то ротор будет находится в равновесии в пределах угла шага. Нужно отметить, что у обесточенного двигателя момент удержания не равен нулю вследствие действия постоянных магнитов ротора. Этот момент обычно составляет около 10% максимального момента, обеспечиваемого двигателем.

Иногда используют термины «механический угол поворота ротора» и «электрический угол поворота ротора». Механический угол вычисляется исходя из того, что полный оборот ротора составляет 2*pi радиан. При вычислении электрического угла принимается, что один оборот соответствует одному периоду угловой зависимости момента. Для приведенных выше формул Ф является механическим углом поворота ротора, а электрический угол для двигателя, имеющего 4 шага на периоде кривой момента, равен ((pi/2)/S)*Ф или (N/4)*Ф, где N – число шагов на оборот. Электрический угол фактически определяет угол поворота магнитного поля статора и позволяет строить теорию независимо от числа шагов на оборот для конкретного двигателя.

Если запитать одновременно две обмотки двигателя, то момент будет равен сумме моментов, обеспечиваемых обмотками по отдельности (рис. 10).

Рис. 10. Зависимость момента от угла поворота ротора для двух запитанных обмоток.

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

Th2 = 2 0.5*Th1,

где Th2 – момент удержания при двух запитанных обмотках,
Th1 – момент удержания при одной запитанной обмотке.

Именно этот момент обычно и указывается в характеристиках шагового двигателя.

Величина и направление магнитного поля показаны на векторной диаграмме (рис. 11).

Рис. 11. Величина и направление магнитного поля для разных режимов питания фаз.

Оси X и Y совпадают с направлением магнитного поля, создаваемого обмотками первой и второй фазы двигателя. Когда двигатель работает с одной включенной фазой, ротор может занимать положения 1, 3, 5, 7. Если включены две фазы, то ротор может занимать положения 2, 4, 6, 8. К тому же, в этом режиме больше момент, так как он пропорционален длине вектора на рисунке. Оба эти метода управления обеспечивают полный шаг, но положения равновесия ротора смещены на пол-шага. Если скомбинировать два этих метода и подать на обмотки соответствующие последовательности импульсов, то можно заставить ротор последовательно занимать положения 1, 2, 3, 4, 5, 6, 7, 8, что соответствует половинному шагу.

По сравнению с полношаговым режимом, полушаговый режим имеет следующие преимущества:

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

Способом устранения колебаний момента является поднятие момента в положениях с одной включенной фазой и обеспечение таким образом одинакового момента во всех положениях ротора. Это может быть достигнуто путем увеличения тока в этих положениях до уровня примерно 141% от номинального. Некоторые драйверы, такие как PBL 3717/2 и PBL 3770A фирмы Ericsson, имеют логические входы для изменения величины тока. Нужно отметить, что величина 141% является теоретической, поэтому в приложениях, требующих высокой точности поддержания момента эта величина должна быть подобрана экспериментально для конкретной скорости и конкретного двигателя. Поскольку ток поднимается только в те моменты, когда включена одна фаза, рассеиваемая мощность равна мощности в полношаговом режиме при токе 100% от номинального. Однако такое увеличение тока требует более высокого напряжения питания, что не всегда возможно. Есть и другой подход. Для устранения колебаний момента при работе двигателя в полушаговом режиме можно снижать ток в те моменты, когда включены две фазы. Для получения постоянного момента этот ток должен составлять 70.7% от номинального. Таким образом реализует полушаговый режим, например, микросхема драйвера A3955 фирмы Allegro.

Для полушагового режима очень важным является переход в состояние с одной выключенной фазой. Чтобы заставить ротор принять соответствующее положение, ток в отключенной фазе должен быть уменьшен до нуля как можно быстрее. Длительность спада тока зависит от напряжения на обмотке в то время, когда она теряет свою запасенную энергию. Замыкая в это время обмотку на источник питания, который представляет максимальное напряжение, имеющееся в системе, обеспечивается максимально быстрый спад тока. Для получения быстрого спада тока при питании обмоток двигателя H-мостом все транзисторы должны закрываться, при этом обмотка через диоды оказывается подключенной к источнику питания. Скорость спада тока значительно уменьшится, если один транзистор моста оставить открытым и закоротить обмотку на транзистор и диод. Для увеличения скорости спада тока при управлении униполярными двигателями подавление выбросов ЭДС самоиндукции предпочтительнее осуществлять не диодами, а варисторами или комбинацией диодов и стабилитрона, которые ограничат выброс на большем, но безопасном для транзисторов уровне.

Микрошаговый режим

Микрошаговый режим обеспечивается путем получения поля статора, вращающегося более плавно, чем в полно- или полушаговом режимах. В результате обеспечиваются меньшие вибрации и практически бесшумная работа вплоть до нулевой частоты. К тому же меньший угол шага способен обеспечить более точное позиционирование. Существует много различных микрошаговых режимов, с величиной шага от 1/3 полного шага до 1/32 и даже меньше. Шаговый двигатель является синхронным электродвигателем. Это значит, что положение равновесия неподвижного ротора совпадает с направлением магнитного поля статора. При повороте поля статора ротор тоже поворачивается, стремясь занять новое положение равновесия.

Рис. 12. Зависимость момента от угла поворота ротора в случае разных значений тока фаз.

Чтобы получить нужное направление магнитного поля, необходимо выбрать не только правильное направление токов в катушках, но и правильное соотношение этих токов.

Если одновременно запитаны две обмотки двигателя, но токи в этих обмотках не равны (рис. 12), то результирующий момент будет

Th = ( a2 + b2 )0.5,

а точка равновесия ротора сместится в точку

x = ( S / (pi/2) ) arctan( b / a ),

где a и b – момент, создаваемый первой и второй фазой соответственно,
Th – результирующий момент удержания,
x – положение равновесия ротора в радианах,
S – угол шага в радианах.

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

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

Результатом использования микрошагового режима является намного более плавное вращение ротора на низких частотах. На частотах в 2 – 3 раза выше собственной резонансной частоты ротора и нагрузки, микрошаговый режим дает незначительные преимущества по сравнению с полу- или полношаговым режимами. Причиной этого является фильтрующее действие инерции ротора и нагрузки. Система с шаговым двигателем работает подобно фильтру нижних частот. В микрошаговом режиме можно осуществлять только разгон и торможение, а основное время работать в полношаговом режиме. К тому же, для достижения высоких скоростей в микрошаговом режиме требуется очень высокая частота повторения микрошагов, которую не всегда может обеспечить управляющий микроконтроллер. Для предотвращения переходных процессов и потери шагов, переключения режимов работы двигателя (из микрошагового режима в полношаговый и т.п.) необходимо производить в те моменты, когда ротор находится в положении, соответствующем одной включенной фазе. Некоторые микросхемы драйверов микрошагового режима имеют специальный сигнал, который информирует о таком положении ротора. Например, это драйвер A3955 фирмы Allegro.

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

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

На практике при осуществлении каждого шага ротор не сразу останавливается в новом положении равновесия, а осуществляет затухающие колебания вокруг положения равновесия. Время установления зависит от характеристик нагрузки и от схемы драйвера. Во многих приложениях такие колебания являются нежелательными. Избавиться от этого явления можно путем использования микрошагового режима. На рис. 13 показаны перемещения ротора при работе в полношаговом и микрошаговом режимах.

Рис. 13. Перемещения ротора в полношаговом и микрошаговом режимах.

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

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

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

Конструкция некоторых двигателей оптимизирована для наилучшей точности в полношаговом режиме и максимального момента удержания. Специальная форма зубцов ротора и статора спроектирована так, чтобы в положении равновесия для полношагового режима магнитный поток сильно возростал. Это приводит к ухудшению точности в микрошаговом режиме. Лучшие результаты позволяют получить двигатели, у которых момент удержания в обесточенном состоянии меньше.

Отклонения можно разделить на два вида: отклонения величины магнитного поля, которые приводят к отклонениям момента удержания в микрошаговом режиме и отклонения направления магнитного поля, которые приводят к отклонениям положения равновесия. Отклонения момента удержания в микрошаговом режиме обычно составляют 10 – 30% от максимального момента. Нужно сказать, что и в полношаговом режиме момент удержания может колебаться на 10 – 20 % вследствие искажений геометрии ротора и статора.

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

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

Препятствием являются следующие физические ограничения:

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

Еще один источник погрешностей позиционирования – это ошибка квантования ЦАП, с помощью которого формируются токи фаз. Дело в том, что ток должен формироваться по синусоидальному закону, поэтому для минимизации погрешности линейный ЦАП должен иметь повышенную разрядность. Существуют специализированные драйверы со встроенным нелинейным ЦАПом, который позволяет сразу получать осчеты функции sin. Примером может служить драйвер A3955 фирмы Allegro, который имеет встроенный 3-х разрядный ЦАП, который обеспечивает следующие значения тока фаз: 100%, 92.4%, 83.1%, 70.7%, 55.5%, 38.2%, 19.5%, 0%. Это позволяет работать в микрошаговом режиме с величиной шага 1/8, при этом погрешность установки тока фаз не превышает 2%. Кроме того, этот драйвер имеет возможность управлять скоростью спада тока обмоток двигателя во время работы, что позволяет произвести «тонкую подстройку» драйвера под конкретный двигатель для получения наименьшей погрешности позиционирования.

Даже если ЦАП точно сформировал синусоидальное опорное напряжение, его нужно усилить и превратить в синусоидальный ток обмоток. Многие драйверы имеют значительную нелинейность вблизи нулевого значения тока, что вызывает значительные искажения формы и, как следствие, значительные ошибки позиционирования. Если используются высококачественные драйверы, например PBM3960 и PBL3771 фирмы Ericsson, погрешность, связанная с драйвером исчезающе мала по сравнению с погрешностью двигателя.

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

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

Синусоидальный ток фаз может быть обеспечен применением специальных драйверов. Некоторые из них, например A3955, A3957 фирмы Allegro, уже содержат ЦАП и требуют о микроконтроллера только цифровых кодов. Другие же, такие как L6506, L298 фирмы SGS-Thomson, требуют внешних опорных напряжений синусоидальной формы, которые должен формировать микроконтроллер с помощью ЦАПов. Нужно сказать, что слишком большое количество дискретов синуса не приводит к повышению точности позиционирования, так как начинает доминировать ошибка, связанная с неидеальностью геометрии полюсов двигателя. Тем более, в этом случае отсчеты должны следовать с большой частотой, что является проблемой при их программном формировании. При работе на больших скоростях разрешающую способность ЦАПов можно уменьшить. Более того, при очень больших скоростях вообще рекомендуется работать в обычном полношаговом режиме, так как управление гармоническим сигналом теряет преимущества. Происходит это по той причине, что обмотки двигателя представляют собой индуктивность, соответственно любая конкретная схема драйвера с конкретным напряжением питания обеспечивает вполне определенную максимальную скорость нарастания тока. Поэтому при повышении частоты форма тока начинает отклоняться от синусоидальной и на очень больших частотах становится треугольной.

Зависимость момента от скорости, влияние нагрузки

Момент, создаваемый шаговым двигателем, зависит от нескольких факторов:

На рис. 14а показана зависимость момента от угла поворота ротора.

Рис. 14. Возникновение мертвых зон в результате действия трения.

У идеального шагового двигателя эта зависимость синусоидальная. Точки S являются положениями равновесия ротора для негруженного двигателя и соответствуют нескольким последовательным шагам. Если к валу двигателя приложить внешний момент, меньший момента удержания, то угловое положение ротора изменится на некоторый угол Ф.

Ф = (N/(2*pi))*sin(Ta/Th),

где Ф – угловое смещение,
N – количество шагов двигателя на оборот,
Ta – внешний приложенный момент,
Th – момент удержания.

Угловое смещение Ф является ошибкой позиционирования нагруженного двигателя. Если к валу двигателя приложить момент, превышающий момент удержания, то под действием этого момента вал провернется. В таком режиме положение ротора является неконтролируемым.
На практике всегда имеется приложенный к двигателю внешний момент, хотя бы потому, что двигателю приходится преодолевать трение. Силы трения могут быть расделены на две категории: статическое трение или трение покоя, для преодоления которого требуется постоянный момент и динамическое трение или вязкое трение, которое зависит от скорости. Рассмотрим статическое трение. Предположим, что для его преодоления требуется момент в половину от пикового. На рис. 14а штриховыми линиями показан момент трения. Таким образом, для вращения ротора остается только момент, лежащий на графике за пределами штриховых линий. Отсюда следуют два вывода: трение снижает момент на валу двигателя и появляются мертвые зоны вокруг каждого положения равновесия ротора (рис. 14б):

d = 2 ( S / (pi/2) ) arcsin(T f /T h) = ( S / (pi/4) ) arcsin(T f / Th),

где d – ширина мертвой зоны в радианах,
S – угол шага в радианах,
Tf – момент трения,
Th – момент удержания.

Мертвые зоны ограничивают точность позиционирования. Например, наличие статического трения в половину от пикового момента двигателя с шагом 90 град. вызовет наличие мертвых зон в 60 град. Это означает, что шаг двигателя может колебаться от 30 до 150 град., в зависимости от того, в какой точке мертвой зоны остановится ротор после очередного шага.

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

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

Каждый раз, когда шаговый двигатель осуществляет шаг, ротор поворачивается на S радиан. При этом минимальный момент имеет в место, когда ротор находится ровно между соседними положениями равновесия (рис. 15).

Рис. 15. Момент удержания и рабочий момент шагового двигателя.

Этот момент называют рабочим моментом, он означает, какой наибольший момент может преодолевать двигатель при вращении с малой скоростью. При синусоидальной зависимости момента от угла поворота ротора, этот момент Tr = Th/(20.5). Если двигатель делает шаг с двумя запитанными обмотками, то рабочий момент равен моменту удержания для одной запитанной обмотки.

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

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

Рис. 16. Форма тока в обмотках двигателя на разных скоростях работы.

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

Поведение момента при увеличении частоты коммутации фаз примерно таково: начиная с некоторой частоты среза момент монотонно падает. Обычно для шагового двигателя приводятся две кривые зависимости момента от скорости (рис. 17).

Рис. 17. Зависимость момента от скорости.

Внутренняя кривая (кривая старта, или pull-in curve) показывает, при каком максимальном моменте трения для данной скорости шаговый двигатель способен тронуться. Эта кривая пересекает ось скоростей в точке, называемой максимальной частотой старта или частотой приемистости. Она определяет максимальную скорость, на которой ненагруженный двигатель может тронуться. На практике эта величина лежит в пределах 200 – 500 полных шагов в секунду. Инерционность нагрузки сильно влияет на вид внутренней кривой. Большая инерционность соответствует меньшей области под кривой. Эта область называется областью старта. Внешняя кривая (кривая разгона, или pull-out curve) показывает, при каком максимальном моменте трения для данной скорости шаговый двигатель способен поддерживать вращение без пропуска шагов. Эта кривая пересекает ось скоростей в точке, называемой максимальной частотой разгона. Она показывает максимальную скорость для данного двигателя без нагрузки. При измерении максимальной скорости нужно иметь в виду, что из-за явления резонанса момент равен нулю еще и на резонансной частоте. Область, которая лежит между кривыми, называется областью разгона.

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

Разогнать!

Для того, чтобы работать на большой скорости из области разгона (рис. 17), необходимо стартовать на низкой скорости из области старта, а затем выполнить разгон. При остановке нужно действовать в обратном порядке: сначала выполнить торможение, и только войдя в область старта можно прекратить подачу управляющих импульсов. В противном случае произойдет потеря синхронности и положение ротора будет утеряно. Использование разгона и торможения позволяет достичь значительно больших скоростей - в индустриальных применениях используются скорости до 10000 полных шагов в секунду. Необходимо отметить, что непрерывная работа шагового двигателя на высокой скорости не всегда допустима ввиду нагрева ротора. Однако высокая скорость кратковременно может быть использована при осуществлении позиционирования.

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

Реализация закона, по которому будет производится ускорение или торможение двигателя, обычно производится программно управляющим микроконтроллером, так как именно микроконтроллер обычно является источником тактовой частоты для драйвера шагового двигателя. Хотя раньше для этих целей применялись управляемые напряжением генераторы или пограммируемые делители частоты. Для генерации тактовой частоты удобно использовать аппаратный таймер, который имеется в составе практически любого микроконтроллера. Когда двигатель вращается с постоянной скоростью, достаточно загрузить в таймер постоянное значение периода повторения шагов (длительность шага). Если же двигатель разгоняется или тормозится, этот период меняется с каждым новым шагом. При разгоне или торможении с постоянным ускорением частота повторения шагов должна изменяться линейно, соответствено значение периода, которое необходимо загружать в таймер, должно меняться по гиперболическому закону.

Для наиболее общего случая требуется знать зависимость длительности шага от текущей скорости. Количество шагов, которое осуществляет двигатель при разгоне за время t равно:

N = 1/2At2+Vt, где N – число шагов, t – время, V – скорость, выраженная в шагах в единицу времени, A – ускорение, выраженное в шагах, деленных на время в квадрате.

Для одного шага N = 1, тогда длительность шага t1 = T = (-V+(V2+2A)0.5)/A

В результате осуществления шага скорость становится равной Vnew = (V2+2A)0.5

Вычисления по приведенным формулам довольно трудоемки и требуют значительных затрат процессорного времени. В то же время, они позволяют изменять значение ускорения в произвольный момент. Расчеты можно существенно упростить, если потребовать постоянства ускорения во время разгона и торможения. В этом случае можно записать зависимость длительности шага от времени разгона:
V = V0+At, где V – текущая скорость, V0 – начальная скорость (минимальная скорость, с которой начинается разгон), A – ускорение;
1/T = 1/T0+At, где T – длительность шага, T0 – начальная длительность шага, t – текущее время;

Откуда T = T0/(1+T0At)

Вычисления по этой формуле осуществить значительно проще, однако для того, чтобы поменять значение ускорения, требуется остановить двигатель.

Резонанс

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

Когда двигатель совершает шаг, ротор не сразу устанавливается в новую позицию, а совершает затухающие колебания. Дело в том, что систему ротор – магнитное поле – статор можно рассматривать как пружинный маятник, частота колебаний которого зависит от момента инерции ротора (плюс нагрузки) и величины магнитного поля. Ввиду сложной конфигурации магнитного поля, резонансная частота ротора зависит от амплитуды колебаний. При уменьшении амплитуды частота растет, приближаясь к малоамплитудной частоте, которая более просто вычисляется количественно. Эта частота зависит от угла шага и от отношения момента удержания к моменту инерции ротора. Больший момент удержания и меньший момент инерции приводят к увеличению резонансной частоты.
Резонансная частота вычисляется по формуле:

F0 = (N*TH/(JR+JL))0.5/4*pi,

где F0 – резонансная частота,
N – число полных шагов на оборот,
TH – момент удержания для используемого способа управления и тока фаз,
JR – момент инерции ротора,
JL – момент инерции нагрузки.

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

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

Когда используется не микрошаговый режим, основной причиной появления колебаний является прерывистое вращение ротора. При осуществлении шага ротору толчком сообщается некоторая энергия. Этот толчок возбуждает колебания. Энергия, которая сообщается ротору в полушаговом режиме, составляет около 30% от энергии полного шага. Поэтому в полушаговом режиме амплитуда колебаний существенно меньше. В микрошаговом режиме с шагом 1/32 основного при каждом микрошаге сообщается всего около 0.1% от энергии полного шага. Поэтому в микрошаговом режиме явление резонанса практически незаметно.

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

Существуют электрические методы борьбы с резонансом. Колеблющийся ротор приводит к возникновению в обмотках статора ЭДС. Если закоротить обмотки, которые на данном шаге не используются, это приведет к демпфированию резонанса.

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

Если это возможно, при старте и остановке нужно использовать частоты выше резонансной. Увеличение момента инерции системы ротор-нагрузка уменьшает резонансную частоту.

Однако, самой эффективной мерой для борьбы с резонансом является применение микрошагового режима.

Чем же его кормить?

Для питания обычного двигателя постоянного тока требуется лишь источник постоянного напряжения, а необходимые коммутации обмоток выполняются коллектором. С шаговым двигателем всё сложнее. Все комутации должен выполнять внешний контроллер. В настоящее время примерно в 95% случаев для управления шаговыми двигателями используются микроконтроллеры. В простейшем случае для управления шаговым двигателем в полношаговом режиме требуются всего два сигнала, сдвинутые по фазе на 90 градусов. Направление вращения зависит  от того, какая фаза опережает. Скорость определяется часотой следования импульсов. В полушаговом режиме всё несколько сложнее и требуется уже минимум 4 сигнала. Все сигналы управления шаговым двигателем можно сформировать программно, однако это вызовет большую загрузку микроконтроллера. Поэтому чаще применяют специальные микросхемы драйверов шагового двигателя, которые уменьшают количество требуемых от процессора динамических сигналов. Типично эти микросхемы требуют тактовую частоту, которая является частотой повторения шагов и статический сигнал, который задает направление. Иногда еще присутствует сигнал включения полушагового режима. Для микросхем драйверов, которые работают в микрошаговом режиме, требуется большее количество сигналов. Распространенным является случай, когда необходимые последовательности сигналов управления фазами формируются с помощью одной микросхемы, а необходимые токи фаз обеспечивает другая микросхема. Хотя в последнее время появляется все больше драйверов, реализующих все функции в одной микросхеме.

 Мощность, которая требуется от драйвера, зависит от размеров двигателя и составляет доли ватта для маленьких  двигателей и до 10-20 ватт для больших двигателей. Максимальный уровень рассеиваемой мощности ограничен нагревом двигателя. Максимальная рабочая температура обычно указывается производителем, но можно приблизительно считать, что нормальной является температура корпуса 90 градусов. Поэтому при конструировании устройств с шаговыми двигателями, непрерывно работающими на максимальном токе, необходимо принимать меры, исключающие касание корпуса двигателя обслуживающим персоналом. В отдельных случаях возможно применение охлаждающего радиатора. Иногда это позволяет применить двигатель меньших размеров и добиться лучшего отношения мощность/стоимость.

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

Схема драйвера должна выполнять три главных задачи:


Способы изменения направления тока

При работе шагового двигателя требуется изменение направления магнитного поля независимо для каждой фазы. Изменение направления магнитного поля может быть выполнено разными способами. В униполярных двигателях обмотки имеют отвод от середины или имеются две отдельные обмотки для каждой фазы. Направление магнитного поля меняется путем перключения половинок обмоток или целых обмоток. В этом случае требуются только два простых ключа A и B для каждой фазы (рис. 18).

Рис. 18. Питание обмотки униполярного двигателя.

В биполярных двигателях направление меняется путем переполюсовки выводов обмоток. Для такой переполюсовки требуется полный H-мост (рис. 19). Управление ключами в том и другом случае должно осуществляться логической схемой, реализующей нужный алгоритм работы. Предпологается, что источник питания схем имеет номинальное для обмоток двигателя напряжение.

Рис. 19. Питание обмотки биполярного двигателя.

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

Обмотки двигателя представляют собой индуктивность, а это значит, что ток не может бесконечно быстро нарастать или бесконечно быстро спадать без привлечения бесконечной разности потенциалов. При подключении обмотки к источнику питания ток будет с некоторой скоростью нарастать, а при отключении обмотки произойдет выброс напряжения. Этот выброс способен повредить ключи, в качестве которых используются биполярные или полевые транзисторы. Для ограничения этого выброса устанавливают специальные защитные цепочки. На схемах рис. 18 и 19 эти цепочки образованы диодами, значительно реже применяют конденсаторы или их комбинацию с диодами. Применение конденсаторов вызывает появление электрического резонанса, что может вызвать увеличение момента на некоторой скорости. На рис. 18 потребовалось 4 диода по той причине, что половинки обмоток униполярного двигателя расположены на общем сердечнике и сильно связаны между собой. Они работают как автотрансформатор и выбросы возникают на выводах обеих обмоток. Если в качестве ключей применены МОП-транзисторы, то достаточно только двух внешних диодов, так как у них внутри уже имеются диоды. В интегральных микросхемах, содержащих мощные выходные каскады с открытым коллектором, также часто имеются такие диоды. Кроме того, некоторые микросхемы, такие как ULN2003, ULN2803 и подобные имеют внутри оба защитных диода для каждого транзистора. Нужно отметить, что в случае применения быстродействующих ключей требуются сравнимые по быстродействию диоды. В случае применения медленных диодов требуется их шунтирование небольшими конденсаторами.

Стабилизация тока

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

Для каждого двигателя производителем указывается номинальное рабочее напряжение обмоток. Поэтому простейший способ питания обмоток – это использование источника постоянного напряжения. В этом случае ток ограничен омическим сопротивлением обмоток и напряжением источника питания (рис. 20а), поэтому такой способ питания называют L/R-питанием. Ток в обмотке нарастает по экспоненциальному закону со скоростью, определяемой индуктивностью, активным сопротивлением обмотки и приложенным напряжением. При повышении частоты ток не достигает номинального значения и момент падает. Поэтому такой способ питания пригоден только при работе на малых скоростях и используется на практике только для маломощных двигателей.

Рис. 20. Питание обмотки номинальным напряжением (а) и использование ограничительного резистора (б).

При работе на больших скоростях требуется увеличивать скорость нарастания тока в обмотках, что возможно путем повышения напряжения источника питания. При этом максимальный ток обмотки должен быть ограничен с помощью дополнительного резистора. Например, если используется напряжение питание в 5 раз большее номинального, то требуется такой дополнительный резистор, чтобы общее сопротивление составило 5R, где R – омическое сопротивление обмотки (L/5R-питание). Этот способ питания обеспечивает более быстрое нарастание тока и как следствие, больший момент (рис. 20б). Однако он имеет существенный недостаток: на резисторе рассеивается дополнительная мощность. Большие габариты мощных резисторов, необходимость отвода тепла и повышенная необходимая мощность источника питания – всё это делает такой метод неэффективным и ограничивает область его применение небольшими двигателями мощностью 1 – 2 ватта. Нужно сказать, что до начала 80-х годов прошлого века параметры шаговых двигателей, приводимые производителями, относились именно к такому способу питания.

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

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

Рис. 21. Питание обмотки двигателя ступенчатым напряжением.

В начале каждого шага кратковременно обмотки подключаются к более высоковольтному источнику, который обеспечивает быстрое нарастание тока (рис. 21). Затем напряжение питания обмоток уменьшается (момент времени t1 на рис. 21). Недостатком этого метода является необходимость двух ключей, двух источников питания и более сложной схемы управления. В системах, где такие источники уже есть, метод может оказаться достаточно дешёвым. Еще одной трудностью является невозможность определения момента времени t1 для общего случая. Для двигателя с меньшей индуктивностью обмоток скорость нарастания тока выше и при фиксированном t1 средний ток может оказаться выше номинального, что чревато перегревом двигателя.

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

Для обеспечения высокой скорости нарастания тока используют напряжение источника питания, в несколько раз превышающее номинальное. Путем регулировки скважности импульсов, среднее напряжение и ток поддерживаются на номинальном для обмотки уровне. Поддержание производится в результате действия обратной связи. Последовательно с обмоткой включается резистор – датчик тока R (рис. 22а). Падение напряжения на этом резисторе пропорционально току в обмотке. Когда ток достигает установленного значения, ключ выключается, что приводит к падению тока. Когда ток спадает до нижнего порога, ключ снова включается. Этот процесс повторяется периодически, поддерживая среднее значение тока постоянным.

Рис. 22. Различные схемы ключевой стабилизации тока.

Управляя величиной Uref можно регулировать ток фазы, например, увеличивать его при разгоне и торможении и снижать при работе на постоянной скорости. Можно также задавать его с помощью ЦАП в форме синусоиды, реализуя таким образом микрошаговый режим. Такой способ управления ключевым транзистором  обеспечивает постоянную величину пульсаций тока в обмотке, которая определяется гистерезисом компаратора. Однако частота переключений будет зависеть от скорости изменения тока в обмотке, в частности, от ее индуктивности и от напряжения питания. Кроме того, две такие схемы, питающие разные фазы двигателя, не могут быть засинхронизированы что может явится причиной дополнительных помех.

От указанных недостатков свободна схема с постоянной частотой переключения (рис. 22б). Ключевым транзистором управляет триггер, который устанавливается специальным генератором. Когда триггер устанавливается, ключевой транзистор открывается и ток фазы начинает расти. Вместе с ним растет и падение напряжения на датчике тока. Когда оно достигает опорного напряжения, компаратор переключается, сбрасывая триггер. Ключевой транзистор при этом выключается и ток фазы начинает спадать до тех пор, пока триггер не будет вновь установлен генератором. Такая схема обеспечивает постоянную частоту коммутации, однако величина пульсаций тока не будет постоянной. Частота генератора обычно выбирается не менее 20кГц, чтобы двигатель не создавал слышимого звука. В то же время слишком высокая частота переключений может вызвать повышенные потери в сердечнике двигателя и потери на переключениях транзисторов. Хотя потери в сердечнике с повышением частоты растут не так быстро ввиду уменьшения амплитуды пульсаций тока с ростом частоты. Пульсации порядка 10% от среднего значения тока обычно не вызывают проблем с потерями.

Подобная схема реализована внутри микросхемы L297 фирмы SGS-Thomson, применение которой сводит к минимуму количество внешних компонентов. Ключевое регулирование реализуют и другие специализированные микросхемы.

Рис. 23. Форма тока в обмотках двигателя для различных способов питания.

На рис. 23 показана форма тока в обмотках двигателя для трех способов питания. Наилучшим в смысле момента является ключевой метод. К тому же он обеспечивает высокий КПД и позволяет просто регулировать величину тока.

Быстрый и медленный спад тока

На рис. 19 были показаны конфигурации ключей в H-мосту для включения разных направлений тока в обмотке. Для выключения тока можно выключить все ключи H-моста или же оставить один ключ включенным (рис. 24). Эти две ситуации различаются по скорости спада тока в обмотке. После отключения индуктивности от источника питания ток не может мгновено прекратится. Возникает ЭДС самоиндукции, имеющая противоположное источнику питания направление. При использовании транзисторов в качестве ключей необходимо использовать шунтирующие диоды, чтобы обеспечить проводимость в обе стороны. Скорость изменения тока в индуктивности пропорциональна приложенному напряжению. Это справедливо как для нарастания тока, так и для его спада. Только в первом случае источником энергии является источник питания, а во втором сама индуктивность отдает запасенную энергию. Этот процесс может происходить при разных условиях.

Рис. 24. Медленный и быстрый спад тока.

На рис. 24а показано состояние ключей H-моста, когда обмотка включена. Включены ключи A и D, направление тока показано стрелкой. На рис. 24б обмотка выключена, но ключ A включен. ЭДС самоиндукции закорачивается через этот ключ и диод VD3. В это время на выводах обмотки будет небольшое напряжение, равное прямому падению на диоде плюс падение на ключе (напряжение насыщения транзистора). Так как напряжение на выводах обмотки мало, малой будет и скорость изменения тока. Соответственно малой будет и скорость спадания магнитного поля. А это значит, еще некоторое время статор двигателя будет создавать магнитное поле, которого в это время быть не должно. На вращающийся ротор это поле будет оказывать тормозящее воздействие. При высоких скоростях работы двигателя этот эффект может серъезно помешать нормальной работе двигателя. Быстрое спадание тока при выключении является очень важным для высокоскоростных контроллеров, работающих в полушаговом режиме.

Возможен и другой способ отключения тока обмотки, когда размыкаются все ключи H-моста (рис 24в). При этом ЭДС самоиндукции закорачивается чрез диоды VD2, VD3 на источник питания. Это значит, что во время спада тока на обмотке будет напряжение, равное сумме напряжения источника питания и прямого падения на двух диодах. По сравнению с первым случаем, это значительно большее напряжение. Соответственно, более быстрым будет спад тока и магнитного поля. Такое решение, использующее напряжение источника питания для ускорения спада тока является наиболее простым, но не единственным. Нужно сказать, что в ряде случаев на источнике питания могут появится выбросы, для подавления которых понадобятся специальные демферные цепочки. Безразлично, каким способом обеспечивается на обмотке повышенное напряжение во время спада тока. Для этого можно применить стабилитроны или варисторы. Однако на этих элементах будет рассеиваться дополнительная мощность, которая в первом случае отдавалась обратно в источник питания.

Для униполярного двигателя ситуация более сложная. Дело в том, что половинки обмотки, или две отдельных обмотки одной фазы сильно связаны между собой. В результате этой связи на закрывающемся транзисторе будут иметь место выбросы повышенной амплитуды. Поэтому транзисторы должны быть защищены специальными цепочками. Эти цепочки для обеспечения быстрого спада тока должны обеспечивать довольно высокое напряжение ограничения. Чаще всего применяются диоды вместе со стабилитронами или варисторы. Один из способов схемотехнической реализации показан на рис. 25.

Рис. 25. Пример реализации быстрого спада тока для униполярного двигателя.

При ключевом регулировании величина пульсаций тока зависит от скорости его спада. Здесь возможны разные вырианты.

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

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

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

Практическая реализация драйверов

Драйвер шагового двигателя должен решать две основные задачи: это формирование необходимых временных последовательностей сигналов и обеспечение необходимого тока в обмотках. В интегральных реализациях иногда эти задачи выполняются разными микросхемами. Примером может служить комплект микросхем L297 и L298 фирмы SGS-Thomson. Микросхема L297 содержит логику формирования временных последовательностей, а L298 представляет собой мощный сдвоенный H-мост. К сожалению, существует некоторая путаница в терминологии относительно подобных микросхем. Понятие «драйвер» часто применяют ко многим микросхемам, даже если их функции сильно различаются. Иногода микросхемы логики называют «трансляторами». В этой статье далее будет использоваться следующая терминология: «контроллер» - микросхема, ответственная за формирование временных последовательностей; «драйвер» - мощная схема питания обмоток двигателя. Однако термины «драйвер» и «контроллер» могут также обозначать законченное устройство управления шаговым двигателем. Необходимо отметить, что в последнее время все чаще контроллер и драйвер объединяются в одной микросхеме.

На практике можно обойтись и без специализированных микросхем. Например, все функции контроллера можно реализовать программно, а в качестве драйвера применить набор дискретных транзисторов. Однако при этом микроконтроллер будет сильно загружен, а схема драйвера может получится громоздкой. Несмотря на это, в некоторых случаях такое решение будет экономически выгодным.
Самый простой драйвер требуется для управления обмотками униполярного двигателя. Для этого подходят простейшие ключи, в качестве которых могут быть использованы биполярные или полевые транзисторы. Достаточно эффективны мощные МОП-транзисторы, управляемые логическим уровнем, такие как IRLZ34, IRLZ44, IRL540. У них сопротивление в открытом состоянии менее 0.1ом и допустимый ток порядка 30А. Эти транзисторы имеют отечественные аналоги КП723Г, КП727В и КП746Г соответственно. Существуют также специальные микросхемы, которые содержат внутри несколько мощных транзисторных ключей. Примером может служить микросхема ULN2003 фирмы Allegro (наш аналог К1109КТ23), которая содержит 7 ключей с максимальным током 0.5 А. Принципиальная схема одной ячейки этой микросхемы приведена на рис. 26.

Рис. 26. Принципиальная схема одной ячейки микросхемы ULN2003.

Аналогичные микросхемы выпускаются многими фирмами. Необходимо отметить, что эти микросхемы пригодны не только для питания обмоток шаговых двигателей, но и для питания любых других нагрузок. Кроме простых микросхем драйверов существуют и более сложные микросхемы, имеющие встроенный контроллер, PWM-регулировку тока и даже ЦАП для микрошагового режима.

Как уже отмечалось ранее, для управления биполярными двигателями требуются более сложные схемы, такие как H-мосты. Такие схемы тоже можно реализовать на дискретных элементах, хотя в последнее время все чаще они реализуются на интегральных схемах. Пример дискретной реализации показан на рис. 27.

Рис. 27. Реализация мостового драйвера на дискретных компонентах.

Такой H-мост управляется с помощью двух сигналов, поэтому он не позволяет обеспечить всех возможных комбинаций. Обмотка запитана, когда уровни на входах разные и закорочена, когда уровни одинаковые. Это позволяет получить только медленный спад тока (динамическое торможение). Мостовые драйверы в интегральном исполнении выпускаются многими фирмами. Примером могут служить L293 (КР1128КТ3А) и L298 фирмы SGS-Thomson.

До недавнего времени большое количество микросхем для управления шаговыми двигателя выпускала фирма Ericsson. Однако 11 июня 1999 года она передала производство своих микросхем индустриального назначения фирме New Japan Radio Company (New JRC). При этом обозначения микросхем помянялись с PBLxxxx на NJMxxxx.

Как простые ключи, так и H-мосты могут составлять часть ключевого стабилизатора тока. Схема управления ключами может быть выполнена на дискретных компонентах или в виде специализированной микросхемы. Довольно популярной микросхемой, реализующей ШИМ-стабилизацию тока, является L297 фирмы SGS-Thomson. Совместно с микросхемой мостового драйвера L293 или L298 они образуют законченную систему управления для шагового двигателя (рис. 28).

Рис. 28. Типовая схема включения микросхем L297 и L298N.

Микросхема L297 сильно разгружает управляющий микроконтроллер, так как от него требуется только тактовая частота CLOCK (частота повторения шагов) и несколько статических сигналов: DIRECTION – направление (сигнал внутренне синхронизирован, переключать можно в любой момент), HALF/FULL – полушаговый/полношаговый режим, RESET – устанавливает фазы в исходное состояние (ABCD = 0101), ENABLE – разрешение работы микросхемы, V ref – опорное напряжение, которое задает пиковую величину тока при ШИМ-регулировании. Кроме того, имеется несколько дополнительных сигналов. Сигнал CONTROL задает режим работы ШИМ-регулятора. При его низком уровне ШИМ-регулирование происходит по выходам INH1, INH2, а при высоком – по выходам ABCD. SYNC – выход внутреннего тактового генератора ШИМ. Он служит для синхронизации работы нескольких микросхем. Также может быть использован как вход при тактировании от внешнего генератора. HOME – сигнал начального положения (ABCD = 0101). Он используется для синхронизации переключения режимов HALF/FULL. В зависимости от момента перехода в полношаговый режим микросхема может работать в режиме с одной включенной фазой или с двумя включенными фазами.

Ключевое регулирование реализуют и многие другие микросхемы.  Некоторые микросхемы обладают теми или иными особенностями, например драйвер LMD18T245 фирмы National Semiconductor не требует применения внешнего датчика тока, так как он реализован внутри на основе одной ячейки ключевого МОП-транзистора.

Некоторые микросхемы предназначены специально для работы в микрошаговом режиме. Примером может служить микросхема A3955 фирмы Allegro. Она имеет встроенный 3-битный нелинейный ЦАП для задания изменяющегося по синусоидальному закону тока фазы.

Рис. 29. Ток и вектор смещения ротора.

Смещение ротора в зависимомти от токов фаз, которые сформированы этим 3-битным ЦАПом, показано на рис. 29. Микросхема A3972 имеет встроенный 6-битный линейный ЦАП.

Выбор типа драйвера

Максимальный момент и мощность, которую может обеспечить на валу шаговый двигатель, зависит от размеров двигателя, условий охлаждения, режима работы (отношения работа/пауза), от параметров обмоток двигателя и от типа применяемого драйвера. Тип применяемого драйвера сильно влияет на мощность на валу двигателя. При одной и той же рассеиваемой мощности драйвер с импульсной стабилизацией тока обеспечивает выигрыш в моменте на некоторых скоростях до 5 – 6 раз, по сравнению с питанием обмоток номинальным напряжением. При этом также расширяется диапазон допустимых скоростей.

Технология приводов на основе шаговых двигателей постоянно развивается. Развитие направлено на получение наибольшего момента на валу при минимальных габаритах двигателя, широких скоростных возможностей, высокого КПД и улучшенной точности. Важным звеном этой технологии является применение микрошагового режима.

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

Практический пример контроллера шагового двигателя на основе микроконтроллера семейства AVR

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

Предлагаемый контроллер предназначен для управления униполярным шаговым двигателем со средним током каждой обмотки до 2.5А. Контроллер может использоваться с распространенными шаговыми двигателями типа ДШИ-200-1, -2, -3. Его также можно использовать и для управления менее мощными двигателями, например теми, что применялись для позиционирования головок в 5-дюймовых дисководах. При этом схему можно упростить, отказавшись от параллельного включения ключевых транзисторов и от ключевой стабилизации тока, так как для маломощных двигателей достаточно простого L/R-питания.

Рис. 30. Принципиальная схема контроллера шагового двигателя.

Основой устройства (рис. 30) является микроконтроллер U1 типа AT90S2313 фирмы Atmel. Сигналы управления обмотками двигателя формируются на портах PB4 – PB7 программно. Для коммутации обмоток используются по два включенных параллельно полевых транзистора типа КП505А, всего 8 транзисторов (VT1 – VT8). Эти транзисторы имеют корпус TO-92 и могут коммутировать ток до 1.4А, сопротивление канала составляет около 0.3 ома. Для того, чтобы транзисторы оставались закрытыми во время действия сигнала «сброс» микроконтроллера (порты в это время находятся в высокоимпедансном состоянии), между затворами и истоками включены резисторы R11 – R14. Для ограничения тока перезарядки емкости затворов установлены резисторы R6 – R9. Данный контроллер не претендует на высокие скоростные характеристики, поэтому вполне устраивает медленный спад тока фаз, который обеспечивается шунтированием обмоток двигателя диодами VD2 – VD5. Для подключения шагового двигателя имеется 8-контактный разъем XP3, который позволяет подключить двигатель, имеющий два отдельных вывода от каждой обмотки (как, например, ДШИ-200). Для двигателей с внутренним соединением обмоток один или два общих контакта разъема останутся свободными.

Необходимо отметить, что контроллер может быть использован для управления двигателем с большим средним током фаз. Для этого только необходимо заменить транзисторы VT1 – VT8 и диоды VD2 – VD5 более мощными. Причем в этом случае параллельное включение транзисторов можно не использовать. Наиболее подходящими являются МОП-транзисторы, управляемые логическим уровнем. Например, это КП723Г, КП727В и другие.

Стабилизация тока осуществляется с помощью ШИМ, которая тоже реализована программно. Для этого используются два датчика тока R15 и R16. Сигналы, снятые с датчиков тока, через ФНЧ R17C8 и R18C9 поступают на входы компараторов U3A и U3B. ФНЧ предотвращают ложные срабатывания компараторов вследствие действия помех. На второй вход каждого компаратора должно быть подано опорное напряжение, которое и определяет пиковый ток в обмотках двигателя. Это напряжение формируется микроконтроллером с помощью встроенного таймера, работающего в режиме 8-битной ШИМ. Для фильтрации сигнала ШИМ используется двухзвенный ФНЧ R19C10R22C11. Одновременно резисторы R19, R22 и R23 образуют делитель, который задает масштаб регулировки токов фаз. В данном случае максимальный пиковый ток, соответствующий коду 255, выбран 5.11А, что соответствует напряжению 0.511В на датчиках тока. Учитывая тот факт, что постоянная составляющая на выходе ШИМ меняется от 0 до 5В, необходимый коэффициент деления равен примерно 9.7. Выходы компараторов подключены к входам прерываний микроконтроллера INT0 и INT1.

Для управления работой двигателя имеются два логических входа: FWD (вперед) и REW (назад), подключенных к разъему XP1. При подаче НИЗКОГО логического уровня на один из этих входов, двигатель начинает вращаться на заданной минимальной скорости, постепенно разгоняется с заданным постоянным ускорением. Разгон завершается, когда двигатель достигает заданной рабочей скорости. Если подается команда изменения направления вращения, двигатель с тем же ускорением тормозится, затем реверсируется и снова разгоняется.

Кроме командных входов, имеются два входа для концевых выключателей, подключенных к разъему XP2. Концевой выключатель считается сработавшим, если на соответствующем входе присутствует НИЗКИЙ логический уровень. При этом вращение в данном направлении запрещено. При срабатывании концевого выключателя во время вращения двигателя он переходит к торможению с заданным ускорением, а затем останавливается.

Командные входы и входы концевых выключателей защищены от перенапряжений цепочками R1VD6, R2VD7, R3VD8 и R4VD9, состоящими из резистора и стабилитрона.

Питание микроконтроллера формируется с помощью микросхемы стабилизатора 78LR05, которая одновременно выполняет функции монитора питания. При понижении напряжения питания ниже установленного порога эта микросхема формирует для микроконтроллера сигнал «сброс». Питание на стабилизатор подается через диод VD1, который вместе с конденсатором C6 уменьшает пульсации, вызванные коммутациями относительно мощной нагрузки, которой является шаговый двигатель. Питание на плату подается через 4-контактный разъем XP4, контакты которого задублированы.

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

Главной задачей программы является формирование импульсных последовательностей для 4-х обмоток двигателя. Поскольку для этих последовательностей временные соотношения являются критичными, формирование выполняется в обработчике прерывания таймера 0. Можно сказать, основную работу программа делает именно в этом обработчике. Блок-схема обработчика приведена на рис. 31.

Рис. 31. Блок-схема обработчика прерывания таймера 0.

Несомненно, было бы удобнее использовать таймер 1, так как он 16-разрядный и способен вызывать периодические прерывания по совпадению с автоматическим обнулением. Однако он занят формированием с помощью ШИМ опорного напряжения для компараторов. Поэтому приходится перезагружать таймер 0 в прерывании, что требует некоторой корректировки загружаемой величины и вызывает некоторый джиттер, который, однако, на практике не мешает. В качестве основной временной базы выбран интервал 25мкс, который и формируется таймером. С такой дискретностью могут формироваться временные последовательности фаз, такой же период имеет и ШИМ стабилизации тока в фазах двигателя.

Для формирования периода повторения шагов используется программный 16-разрядный таймер STCNT. В отличие от таймера 0, его загрузочная величина не является константой, так как именно она определяет скорость вращения двигателя. Таким образом, переключение фаз происходит только при переполнении программного таймера.

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

Самая «главная» переменная в программе – это 24-битная знаковая переменная VC, которая содержит значение текущей скорости. Знак этой переменной определяет направление вращения, а значение – частоту следования шагов. Нулевое значение этой переменной говорит о том, что двигатель остановлен. Программа в этом случае выключает ток всех фаз, хотя во многих приложениях в этой ситуации требуется оставить включенными текущие фазы и лишь несколько уменьшить их ток, обеспечив этим удержание положения двигателя. При необходимости такое изменение логики работы программы  сделать очень просто.

Таким образом, в случае переполнения программного таймера STCNT происходит анализ значения переменной VC, в случае положительного значения указатель PHASE инкрементируется, а в случае отрицательного – декрементируется. Затем из таблицы выбирается очередная комбинация фаз, которая выводится в порт. В случае нулевого значения VC указатель PHASE не изменяется, и в порт выводятся все нулевые значения.

Величина T, которой следует загружать таймер STCNT, однозначно связана со значением переменной VC. Однако перевод частоты в период занимает довольно много времени, поэтому эти вычисления производятся в основной программе, и не на каждом шаге, а гораздо реже. Вообще, эти вычисления нужно периодически производить только во время разгона или торможения. В остальных случаях скорость, и, соответственно, период повторения шагов, не меняются.

Для осуществления ШИМ-стабилизации тока фазы должны периодически включаться, а затем, при достижении током заданного уровня, выключаться. Периодическое включение производится в прерывании таймера 0, для чего даже в случае отсутствия переполнения программного таймера STCNT в порт выводится текущая комбинация фаз. Происходит это с периодом 25мкс (что соответствует частоте ШИМ 40кГц). Выключением фаз управляют компараторы, выходы которых подключены к входам прерывания INT0 и INT1. Прерывания разрешаются после того, как ток фаз включается, и запрещаются сразу после переключения компараторов. Это исключает их повторную обработку. В обработчиках прерываний происходит только отключение соответствующих фаз (рис. 32).

Рис. 32. Блок-схема обработчика прерываний INT0 и INT1.

Процессы, происходящие при ШИМ-стабилизации тока, показаны на рис. 33. Особо следует отметить, что ток в датчике тока имеет прерывистый характер даже в том случае, если ток обмотки не прерывается. Это связано тем, что во время спада тока его путь не проходит через датчик тока (а проходит через диод).

Рис. 33. Процесс ШИМ-стабилизации тока.

Нужно сказать, что аналоговая часть системы ШИМ-стабилизации тока фаз двигателя является довольно «капризной». Дело в том, что сигнал, снимаемый с датчика тока, содержит большое количество помех. Помехи возникают в основном в моменты коммутации обмоток двигателя, причем как «своей», так и «чужой» фазы. Для правильной работы схемы требуется корректная разводка печатной платы, особенно это касается земляных проводников. Возможно, придется подобрать номиналы ФНЧ на входе компаратора или даже ввести в компаратор небольшой гистерезис. Как уже отмечалось выше, при управлении маломощными двигателями от ШИМ-стабилизации тока можно вовсе отказаться, применив обычную L/R-схему питания обмоток. Для исключения ШИМ-стабилизации достаточно просто не подключать входы INT0 и INT1 микроконтроллера, естественно, при этом можно вообще не устанавливать компаратор и датчики тока.

В данной программе периодичность вычисления новых значений скорости и периода выбрана равной 15.625мс. Такое значение выбрано не случайно. Этот интервал составляет 1/64с, а главное, он содержит целое число периодов переполнения таймера 0 (25мкс). Удобно, если значения скорости и ускорения задаются в естественных единицах, т.е. в шагах в секунду и в шагах, деленных на секунду в квадрате. Для того чтобы иметь возможность в целочисленной арифметике вычислять мгновенную скорость 64 раза в секунду, нужно перейти к внутреннему представлению скорости, увеличенному в 64 раза. Умножение и деление на 64 сводится к обычным сдвигам и поэтому требует очень мало времени. Заданную периодичность вычислений обеспечивает еще один программный таймер URCNT, который декрементируется в прерывании таймера 0 (раз в 25мкс). Этот таймер всегда загружается постоянной величиной, что обеспечивает неизменный период его переполнений, равный 15.625мс. При переполнении этого таймера устанавливается битовый флаг UPD, который сигнализирует основной программе, что «пора-бы обновить значения скорости и периода».

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

Рис. 34. Блок-схема основного цикла программы.

Обновление значений скорости и периода следования шагов основная программа делает периодически, периодичность задается флагом UPD. Обновление программа делает на основе сравнения значений двух переменных: мгновенной скорости VC и требуемой скорости VR.

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

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

Если при очередной проверке обнаруживается, что скорости VR и VC не равны, то к значению VC прибавляется (или вычитается) значение ускорения A. Если в результате этой операции происходит превышение требуемой скорости, то полученное значение корректируется путем замены на точное значение требуемой скорости.

Затем происходит вычисление периода T (рис. 35).

Рис. 35. Блок-схема подпрограммы вычисления периода.

Вначале вычисляется модуль текущей скорости. Затем происходит ограничение минимальной скорости. Это ограничение необходимо по двум причинам. Во-первых, бесконечно малой скорости соответствует бесконечно большой период, что вызовет ошибку в вычислениях. Во-вторых, шаговые двигатели имеют довольно протяженную по скорости зону старта, поэтому нет необходимости стартовать на очень маленькой скорости, тем более что вращение на малых скоростях вызывает повышенный шум и вибрацию. Значение минимальной скорости VMIN должно выбираться исходя из конкретной задачи и типа двигателя. После ограничения минимальной скорости производится вычисление периода по формуле T = 2560000/|VC|. На первый взгляд формула не очевидна, но если учесть, что период необходимо получить в 25мкс-интервалах, а внутреннее представление VC – это умноженное на 64 ее истинное значение, то все становится на свои места. При вычислении T требуется операция беззнакового деления формата 24/24, которое AVR на тактовой частоте 10МГц делает примерно за 70мкс. Учитывая, что вычисления периода происходят не чаще, чем один раз в 15.625мс, загрузка процессора получается очень низкой. Основную загрузку производит прерывание таймера 0, да и оно в основном выполняется по короткой ветке (без переполнения STCNT) длительностью примерно 3мкс, что соответствует 12%-й загрузке процессора. Это означает, что имеются значительные резервы вычислительных ресурсов.

Печатная плата контроллера шагового двигателя приведена на рис. 36.

Рис. 36. Печатная плата контроллера шагового двигателя.

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

Links:

  1. http://www.cs.uiowa.edu/~jones/step/
  2. http://www.motionex.com/cmotor/engref.htm
  3. http://www.eio.com/stprprod.htm
  4. http://www.doc.ic.ac.uk/~ih/doc/stepper/control2/connect.html
  5. http://www.doc.ic.ac.uk/~ih/doc/stepper/kp4m4/
  6. http://www.robotics.com/motors.html
  7. http://e-www.motorola.com/motor/tutorial/index.html
  8. http://www.njr.co.jp/_efr005.htm
  9. http://us.st.com/stonline/products/selector/60.htm
  10. http://doc.semicon.toshiba.co.jp/seek/us/td/06linia/060028.htm
  11. http://www.allegromicro.com
  12. http://www.national.com

Download:

Полную версию этой статьи можно найти в журнале "Схемотехника" (www.dian.ru).

Автор проекта: Ридико Леонид Иванович
e-mail: wubblick@yahoo.com

Назад