Управление вентильным электродвигателем. Часть 2
7 апреля
В статье приведены краткие сведения по основам управления вентильными электродвигателями. Показаны возможные реализации систем управления с помощью аппаратных средств на примере микроконтроллеров компании Renesas. Статья в первую очередь адресована разработчикам систем, в которых автоматизированный электропривод можно построить из готовых компонентов – интеллектуальных силовых ключей (сборок) и специализированных микроконтроллеров. Основное внимание уделяется методам управления и их аппаратной реализации с помощью специализированных микроконтроллеров. В основу статьи лег фундаментальный материал [1]. Во второй ее части рассматривается построение систем управления, а также описываются иные способы модуляции.
В первой части статьи рассматривались методы управления ВЭД при шестиступенчатой 120˚-ной модуляции. В этом случае ток одновременно протекает только через две обмотки — каждая обмотка находится под напряжением 120˚-ной электрического цикла, затем следует пауза 60˚. Таким образом, каждая обмотка работает 2/3 периода, а двигатель используется лишь на 2/3 мощности. Крутящий момент также неравномерен, что порождает акустические шумы двигателя. Указанные недостатки могут быть устранены при использовании 120˚-ной модуляции, когда ток одновременно протекает по всем трем обмоткам.
Временная диаграмма напряжений на обмотках ВЭД при 180˚-ной модуляции приведена на рисунке 1.
Рис. 1. Временные диаграммы 180˚-ной модуляции с одновременной работой трех обмоток |
Такая схема модуляции может работать, если обеспечивается переходный интервал (мертвое время), необходимый для защиты ключей от короткого замыкания. При подаче напряжения на обмотку Un до того, как обмотка Up не будет полностью обесточена, возникает риск возникновения короткого замыкания, способного вывести силовые ключи из строя.
Для реализации 180˚-ной модуляции требуется усложненный процессорный таймер с дополнительными регистрами для хранения величины мертвого времени, а также с возможностью генерации различных форм напряжения. Таймеры, входящие в состав МК M16C/28, являются универсальными устройствами, позволяющими генерировать различные модуляционные схемы: 180˚-ную модуляцию, синусоидальную модуляцию, квази-синусоидальную модуляцию, пространственно-векторную модуляцию и любую другую. Возможна модуляция либо за счет только верхних, или только нижних ключей, либо тех и других через каждые 60˚. Таймер оснащен сдвоенной парой регистров. Первый регистр отвечает за сравнение по передним фронтам, а второй — по задним фронтам сигналов. Возможность двойного сравнения позволяет улучшать качество синусоидальной модуляции.
При помощи МК, управляющего 180˚-ной модуляцией, можно сравнительно легко сформировать синусоидальный сигнал. Для этого вместо 360˚периода электрического цикла будем использовать период, зависящий от частоты несущей. Во время каждого такого периода будем определять синус угла, в соответствии с которым устанавливать параметры ШИМ. На рисунке 2 проиллюстрированы основные шаги формирования синусоидального выходного сигнала:
2. Выбор амплитуды V0 и частоты выходного сигнала.
3. Вычисление фазового угла напряжения в каждом периоде несущей волны.
4. Нахождение в таблице значения синуса угла.
5. Определение рабочего цикла ШИМ. Для этого найденное значение синуса угла умножается на коэффициент модуляции.
6. Занесение параметров ШИМ в соответствующие регистры.
Ниже приведены основные формулы, используемые в расчете:
|
(вычисляется один раз),
θ(n) = θ(n-1) + ∆ θ,
U = V0·sin(θ(n)),
V = V0·sin(θ(n + 240°)),
W = V0·sin(θ(n + 120°)).
Рассмотрим подробно каждый из шагов формирования синусоидального выходного сигнала. Итак, нам надо знать три величины: частоту несущей fc, частоту выходного сигнала f и его амплитуду V0. Пусть fc = 10 кГц, f = 50 Гц, а V0 определяется максимально возможным напряжением на шине питания VDC, т.е. максимальное напряжение равно VDC, а минимальное: 0.
Синусоида начинается со среднего значения, идет к максимальному значению V0 и спускается к минимальному значению V0. Среднее значение определяется величиной:
Отметим, что максимальное значение V0 равно ½ VDC. В нашем случае VDC = 160 В. Следовательно, ½ VDC и V0 равны 80 В. Для расчета синусоиды можно использовать выражение:
которое можно переписать в виде:
При 90˚ VШИМ = VMAX, а при 270˚ VШИМ = VMIN. За каждый период несущей фазовый угол выходного сигнала меняется на величину:
Период несущей равен величине:
Показание таймера, соответствующее максимальному рабочему циклу ШИМ, равно произведению периода несущей на тактовую частоту, т.е.
Поскольку в данном примере используется треугольная симметричная ШИМ, в регистр канала В2 таймера заносится значение, равное половине этой величины: 1000. При этом первый параметр ШИМ, задающий передний фронт сигнала, определяется как:
Это выражение можно сравнить с выражением:
Второй параметр ШИМ, задающий задний фронт сигнала, определяется как:
При 90˚ синус угла равен 1. Следовательно, этому моменту должно соответствовать максимальное значение таймера. А при 270˚ синус угла равен –1, чему должно соответствовать минимальное показание таймера.
Формирование синусоидальной волны начинается с угла θ = 0. В канале В2 таймера МК устанавливается значение 1000 и начинается обратный отсчет тактовых импульсов. При каждом втором обнулении таймера, означающем конец периода треугольного симметричного сигнала несущей, посылается команда на прерывание. В процессе обработки прерывания вычисляется угол, по таблице синусов ищется синус угла, найденное значение синуса умножается на величину напряжения, что дает возможность определить параметр ШИМ1. Проверив, не является ли полученное значение ШИМ1 верхней или нижней границей допустимых значений, вычисляется параметр ШИМ2.
Проектирование разомкнутых систем управления скоростью БДПТ по напряжению и по частоте (V/f-регулирование) основывается на трех предположениях:
1. Импеданс ВЭД с увеличением частоты возрастает — превалирует индуктивная составляющая.
2. В системах регулирования величину тока холостого хода стремятся поддерживать постоянным.
3. Увеличение скорости вращения двигателя достигается за счет повышения частоты и соответствующего изменения напряжения.
Такой способ регулирования имеет два преимущества. Во-первых, не надо измерять ни ток, ни скорость. Во-вторых, простой алгоритм существенно облегчает практическую реализацию. Этот способ после нескольких корректировок позволяет регулировать скорость ВЭД, даже не зная его конкретных параметров. Недостатки также очевидны. Например, без цепей обратных связей неизвестна реальная скорость ВЭД, которая меняется при изменении нагрузки.
Рис. 3. Временная диаграмма работы БДПТ, вращающегося с тремя различными скоростями |
Пример замкнутой системы скалярного регулирования показан на рисунке 4.
Рис. 4. Замкнутая система регулирования скорости ВЭД, реализованная на основе датчика положения и таймера с триггером захвата входных данных |
В состав системы входит датчик положения, используемый для измерения скорости. В качестве датчика может быть использован либо тахометр, либо датчик Холла. Таймер с триггером захвата входных сигналов обеспечивает проведение двух измерений: времени между захватом двух сигналов и изменения положения ротора, по которым можно определить скорость двигателя. Скорость вращения ротора вычисляется по изменению его положения, определяемому по данным, полученным из двух соседних захватов сигнала датчика положения.
Пропорционально-интегральное регулирование скорости двигателя (ПИ-регулирование) осуществляется по следующему алгоритму:
где ωr* — заданная скорость, ωr — измеренная скорость, Кр — коэффициент усиления регулятора , Ki — постоянная времени интегрирования.
Аналогичный алгоритм регулирования применяется и для определения напряжения синусоидального сигнала. Итак, при каждом измерении скорости вычисляются два параметра: частота и напряжение синусоидального сигнала. Иногда напряжение не вычисляется, поскольку двигатель работает при заданном рабочем напряжении.
Более сложен пропорционально-интегрально-дифференциальный (ПИД) регулятор. Его уравнение приведено ниже:
где (ωr* – ωr) — текущая ошибка по скорости, (ωr* – ωr)p — величина предыдущей ошибки, а Kd — постоянная времени дифференцирования. Все остальные члены те же, что и в уравнении для ПИ-регулятора. Этот метод обеспечивает точное регулирование скорости при торможении и ускорении двигателя, поэтому многие эксперты рекомендуют использовать именно его. Однако ПИД-регулятор имеет и серьезные недостатки. При зашумленном сигнале операция дифференцирования усиливает помеху, возникает неустойчивость регулятора. Обычно дифференциальная составляющая сглаживает переходные процессы, поэтому ее можно включать лишь при изменении задания по скорости.
Отметим, что в замкнутой системе помимо реализации алгоритма регулятора ресурс МК расходуется на вычисление скорости ВЭД. При скорости вращения ВЭД 6000 об/мин время выполнения подпрограммы измерения скорости или время обработки каждого прерывания от датчика Холла в МК M16C/28 составляет 16 мкс, а время выполнения алгоритма регулятора — 1000 мкс.
В системах скалярного регулирования необходимы дополнительный таймер для измерения времени между двумя импульсами, поступающими от датчика положения, а также устройство захвата входного сигнала и его хранение в интервале времени между двумя сигналами прерывания. Очевидно, что разомкнутые системы более просты в реализации и характеризуются небольшой стоимостью, тогда как замкнутые системы более дорогие из-за использования дополнительных датчиков.
Уравнения для крутящего момента ротора БДПТ:
где r — радиус ротора, F — сила Лоренца, i — ток в обмотке статора, L — длина обмотки, β — магнитная индукция, а θ — угол между направлением тока и вектором магнитной индукции ротора.
Введем систему координат, неподвижную относительно ротора — оси d и q (см. рис. 5).
Рис. 5. Преобразование системы координат статора в систему координат ротора |
Ток Id оси d ротора создает магнитный поток, а ток Iq оси q — крутящий момент. Токи в обмотках статора преобразуются согласно уравнениям Парка-Горева. Подробное описание преобразования можно найти в многочисленных публикациях, посвященных переходным процессам в электрических машинах, например в [2].
Для поддержания заданных значений магнитного потока и крутящего момента необходимо регулировать значения токов Id и Iq. Поскольку скорость вращения двигателя напрямую связана с величиной крутящего момента, который, в свою очередь, определяется током Iq, принцип регулирования скорости БДПТ и заключается в управлении этим током. Такой способ управления называется векторным, поскольку для вычисления значений регулируемых переменных используются векторные уравнения.
Структурная схема векторной системы управления приведена на рисунке 6.
Рис. 6. Система векторного регулирования скорости ВЭД |
В ее состав входят два датчика тока и датчик углового положения, установленный на роторе. С выхода датчика в регистры захвата входных сигналов и счетчик таймера, являющиеся периферийными устройствами МК, поступают квадратурные импульсы А, В и нулевой синхроимпульс Z, что позволяет определить положение и направление вращения. По каждому сигналу прерывания (частота прерываний определяется частотой несущей) генерируются три сигнала ШИМ.
В ходе обработки очередного прерывания значения этих токов преобразуются из системы координат статора с осями U, V и W в систему координат ротора с осями d и q, для чего применяется операция перемножения матриц, учитывающая угол поворота ротора q, соответствующий данному моменту времени. Угол поворота ротора определяется по времени прихода импульсов А и В. Алгоритм значительно упрощается, если в состав МК входит таймер с триггером захвата входных данных, обеспечивающий непрерывную фиксацию моментов прихода импульсов А и В.
Регулятор скорости генерирует ток I*q , необходимый для получения заданной скорости. По величине этого тока и тока статора Iqc , определяется напряжение статора, используемое для формирования параметров ШИМ. Для поддержания соответствующего магнитного потока в статоре двигателя, величину тока I*d удерживают на постоянном уровне. Ток I*d и ток Idc , полученный на основе измеренных значений токов в обмотках статора, подаются во второй автоматический регулятор тока, вырабатывающий напряжение Vdc. Значения напряжений Vqc и Vdc корректируются в соответствии с количеством пар полюсов двигателя и величиной токов I*q и I*d .
После вычисления значений Vqc и Vdc они преобразуются из системы координат ротора в систему координат статора, для чего используется обратное преобразование и текущее значение угла поворота ротора. На основе полученных значений напряжений Vu, Vw и Vv определяются параметры ШИМ, задаваемые при помощи трехканального таймера. Алгоритм регулирования тока, называемый внутренней обратной связью, работает намного быстрее алгоритма регулирования скорости. Более медленный процесс регулирования скорости и связанные с ним вычисления получили название: внешняя обратная связь.
В таблице 1 приведены данные, позволяющие сравнить три рассмотренные выше системы управления БДПТ (разомкнутую систему и замкнутые системы скалярного и векторного управления) по ряду параметров (точности, составу МПУ и т.д.).
Таблица 1. Сравнение трех систем: разомкнутой системы и замкнутых систем скалярного и векторного управления ВЭД
Параметры |
Разомкнутая система регулирования |
Скалярное регулирование |
Векторное регулирование |
Метод управления |
Разомкнутая система |
Система с обратной связью по скорости |
Система с обратной связью по скорости и по току |
Точность регулирования скорости |
Низкая |
Высокая |
Очень высокая |
Регулирование крутящего момента |
Отсутствует |
Косвенное регулирование |
Оптимальный способ |
Требования к составу МК |
Трехканальный таймер со счетчиком мертвого времени |
Трехканальный таймер со счетчиком мертвого времени |
Трехканальный таймер со счетчиком мертвого времени |
— |
Таймер с триггером захвата входных данных для измерения скорости |
Таймер с триггером захвата входных данных для измерения скорости | |
— |
— |
Два канала АЦП для одновременного измерения фазовых токов | |
Невысокие требования к производительности МПУ |
Небольшое повышение требований к производительности МПУ |
Значительное повышение требований к производительности МПУ | |
Датчики |
Отсутствуют |
Датчик положения – датчик Холла, датчик углового положения или тахометр |
Один датчик положения и два датчика тока |
Особенности |
Простота реализации |
Требуется детектирование скорости |
Требуется детектирование тока и скорости |
— |
Повышение стоимости из-за датчика положения |
Повышение стоимости из-за датчика положения и двух датчиков тока | |
— |
— |
Повышение стоимости из-за необходимости применения высокопроизводительного МПУ | |
Заключение |
Приемлемый метод регулирования |
Усовершенствованный метод регулирования |
Самый лучший метод регулирования |
Из-за того, что в состав векторной системы регулирования входят датчик положения и два датчика тока, ее стоимость может быть относительно высока. Когда цена системы является ключевым параметром, а точность установки скорости не очень важна (например, в бытовой технике: холодильники, посудомоечные машины, микроволновые печи, стиральные машины и другие), системы векторного регулирования, как правило, не применяются. Для таких случаев были разработаны два дополнительных метода управления, обеспечивающие приемлемое регулирование скорости при достаточно невысокой стоимости системы. Оба метода используют 180˚-ную модуляцию и алгоритм векторного управления.
В одном из рассматриваемых методов из системы регулирования исключен только датчик положения, но два преобразователя тока остались. Угол поворота ротора и его скорость оцениваются по величине тока и напряжению на выходе ШИМ. В этом методе используется один из принципов современной теории управления, реализованный на основе фильтра Кальмана: модель наблюдателя и матрица переходов из состояния в состояние, а для регулирования тока вдоль оси q производится оценка значений угла поворота и скорости вращения ротора.
Алгоритм векторного управления предусматривает выполнение большого количества матричных операций, что повышает требования к производительности МК, которая должна быть почти в 2 раза выше, чем в случае обычного векторного регулирования. В подобных системах очень трудно регулировать усиление автоматических регуляторов скорости и тока из-за необходимости использования точных значений параметров двигателя, в частности, значений индуктивности вдоль осей q и d, которые сложно измерить. Несмотря на все сложности, такие системы были реализованы на практике и успешно применяются в нескольких приложениях. Во втором методе исключаются и датчики тока, и датчик положения. Ток измеряется при помощи шунтирующего сопротивления (как правило, прецизионный резистор), установленного на низкопотенциальной шине инвертора (см. рис. 7).
Рис. 7. Метод векторного управления с измерением тока одним шунтом |
На рисунке 8 проиллюстрирован метод измерения тока с помощью одного шунта.
Рис. 8. Измерение тока одним шунтом при помощи дополнительных тактовых импульсов, используемых для запуска АЦП |
Ток, текущий через шунт, в интервале времени между нарастающими фронтами сигналов в фазах W и V, соответствует току в фазе W, поскольку в это время работает только один верхний ключ фазы W, включающий обмотку Wp (см. часть 1 статьи). Ток, текущий через шунт, в интервале времени между нарастающими фронтами сигналов в фазах V и U, получаем, соответствует сумме токов в фазах W и V. Поскольку обмотки статора включены по схеме «звезда», сумма токов в обмотках равна 0, т.е. измеренная сумма токов в фазах W и V фактически равна току в фазе U. Таким образом, для определения токов, во время обработки прерываний необходимо проводить два измерения в точно установленные интервалы времени, для чего нужны два дополнительных канала таймера, управляющие запуском АЦП в заданные моменты времени.
В рассматриваемом примере используется трехканальный таймер Renesas M16C, подключенный к АЦП. Сигналы таймера ТВ0 и ТВ1 запускают в определенные моменты времени в каналы АЦП AN0 и AN1, для чего в соответствующих регистрах таймера устанавливаются требуемые значения. Значения, устанавливаемые в каналах таймера ТВ0 и ТВ1, определяются, исходя из сравнения параметров ШИМ для всех трех фаз. Следует отметить, что три выходных сигнала ШИМ меняются постоянно, и импульс фазы W не всегда является самым длительным.
Поэтому необходимо проверять, какой выходной импульс обладает наибольшей длительностью и устанавливать флаг, соответствующий измеряемому току. Все это значительно усложняет программу обработки прерывания и повышает нагрузку на МК. В таблице 2 приведены сведения о загрузке МК Renesas M16C/28 при реализации различных методов управления ВЭД.
Таблица 2. Загрузка МК M16C/28 компании Renesas при реализации различных методов управления ВЭД
Алгоритм |
Частота несущей, кГц |
ПЗУ/ОЗУ |
Загруженность МПУ, средн. % (макс. %) |
120˚-ная трапециедальная модуляция |
4…20 |
1,97 кБ/41 Б |
8 (11) |
120˚-ная трапециедальная модуляция без использования датчиков |
20 |
2,17 кБ/51 Б |
30 (50) |
180˚-ная синусоидальная модуляция (v/f регулирование) |
4…20 |
3,14 кБ/51 Б |
12 (16) |
180˚-ное векторное регулирование при помощи внешнего датчика |
4…20 |
4,38 кБ/143 Б |
40 (42) |
180˚-ное векторное регулирование без датчика положения, но с 2-мя преобразователями тока |
4…8 |
6,87 кБ/193 Б |
74 (75->67) |
180˚-ное векторное регулирование без датчика положения и без преобразователей тока (с шунтом) |
4 |
10 кБ/1 кБ |
88 (91->91) |
Микроконтроллеры семейства M16C являются наиболее известными в линейке 16-разрядных МК Renesas. Особую популярность это семейство получило за строгую концепцию совместимости. Если М16С выпускается в определенном корпусе, то все новые МК этого семейства в таком корпусе будут совместимы как по выводам, так и по внутренним блокам и, соответственно, по коду. Новые возможности реализуются за счет мультиплексирования с уже существующими функциями. Тематика управления электроприводом и, в частности, ВЭД, прослеживается не только в этом семействе МК. Семейство М16С занимает нишу МК для управления электродвигателем среднего класса.
Для более сложных схем управления, например векторного управления, требующих большей вычислительной мощности ядра МК и более быстрой реакции на изменение нагрузки, Renesas предлагает использовать семейство 32-разрядных МК с RISС-архитектурой — SuperH. Флагманы этой архитектуры — МК с новым суперскалярным ядром SH-2A, обладающим не только быстрым 32-разрядным модулем MAC (умножение с накоплением), но также FPU-сопроцессором, и очень быстрым входом в процедуру обработки прерывания — задержка от 30 нс при тактовой частоте 200 МГц. Так же как и в семействе M16C, в SH-2A немаловажную роль играет специальный блок таймеров MTU2, позволяющий значительно разгрузить ядро от функций формирования ШИМ для инвертора. Таймер может реализовывать различные схемы генерации ШИМ, в том числе 6-выводной комплементарный ШИМ, либо ШИМ по 12 выводам с синхронным сбросом. Кроме того, таймерный блок может управлять запуском АЦП, обрабатывать функции энкодера или тахометра. А наличие в МК SH-2A еще одной упрощенной копии этого блока — MTU2S — позволяет управлять двумя электродвигателями независимо.
В области бюджетных решений управления электроприводом Renesas представлен младшим семейством R8C. Это семейство переняло архитектуру M16C, т.е. это 16-разрядный CISC с тактовой частотой до 20 МГц, а периферийные модули взяты из лучших семейств микроконтроллеров Renesas. Наиболее сильными представителями R8C для управления электроприводом являются микроконтроллеры группы R8C/24-25 с блоком таймеров RD и похожим функционалом на MTU2 от «старшего брата» SuperH.
В заключение, отметим доступность средств обучения и отладки систем управления электродвигателем. В большинстве случаев готовые демонстрационные платформы с подробным описанием алгоритмов управления двигателем, наличием открытых исходных кодов и удобным пользовательским интерфейсом позволяют значительно ускорить разработку контроллера электродвигателя.
Renesas предлагает демонстрационные комплекты для всех основных типов электродвигателей (см. табл. 3).
Таблица 3. Демонстрационные комплекты управления электродвигателями
Тип электродвигателя |
Название демонстрационного комплекта |
Управляющий контроллер Renesas |
Форма сигнала управления |
Тип управления |
Бесконтактный двигатель постоянного тока — BLDC (ВЭД) |
MCRP 2 |
H8 300H |
Трапециедальная |
Скалярное |
Бесконтактный двигатель постоянного тока — BLDC (ВЭД) |
MCRP 3 |
R8C |
Трапециедальная |
Скалярное |
Бесконтактный двигатель переменного тока (синхронный ЭД переменного тока с постоянным магнитом) — BLAC (PMSM) |
MCRP 5 |
SuperH |
Синусоидальная |
Полное векторное |
Универсальный ЭД (ЭД постоянного тока) — Universal (DC) motor |
MCRP 4 |
R8C |
Прямоугольная (управление симистором) |
Скалярное |
Асинхронный 3Ф ЭД — ACIM |
MCRP 1 |
H8 300H |
Синусоидальная |
V/F и упрощенное векторное |
Кроме того, на сайте Renesas (eu.renesas.com) можно найти множество подробных примеров использования блоков таймеров для различных алгоритмов управления электродвигателем, а специальный портал RenesasInteractive (www.renesasinteractive.com) позволяет быстро изучить архитектуру микроконтроллеров и их функционал.
Дополнительную информацию по микроконтроллерам Renesas и по демонстрационным платформам управления электродвигателем можно получить у официального дистрибьютора Renesas — компании Arrow Electronics Rus, отправив запрос по адресу [email protected].
1. Yashvant J. RenesasImplementing Embedded Speed Control for Brushless DC Motors. Part 4, Part 5, Part 6//www.embedded.com/columns/technicalinsights/196801718?_requestid=693780.
2. Иванушкин В., Сарапулов Ф., Шымчак П. Структурное моделирование электромеханических систем и их элементов. Szczecin, 2000, 320 c.
Вы можете скачать эту статью в формате pdf здесь.
Новый отечественный motor-control микроконтроллер К1921ВК01Т ОАО «НИИЭТ» / НПФ ВЕКТОР corporate blog / Habr
Как-то прошла мимо новость о появлении нового микроконтроллера К1921ВК01Т ОАО «НИИЭТ». Чем он примечателен? Своей периферией, предназначенной для управления электродвигателями (motorcontrol). Это не просто пара-тройка ШИМ каналов. Это девять навороченных двухканальных модулей ШИМ (PWM), из них три модуля (HRPWM) с режимом «высокого» разрешения. Это шесть отдельных 32х разрядных модулей захвата CAP. Двадцать четыре(!) канала 12ти разрядных АЦП с гибким менеджером их запуска, встроенным усреднителем и цифровыми компараторами. Два квадратурных декодера (QEP), куча интерфейсов связи, внутренняя пользовательская память, часы – и всё это на ядре ARM Cortex-M4F с мегабайтом флеш-памяти «на борту» и производительностью 100 MIPS! Интересно?
Собственно, чтобы в статье не перечислять все технические характеристики изделия, отправляю на страницу сайта производителя. Там есть как краткий список, так и полноценный даташит (правда он всё время прячется по разным углам сайта и на момент написания статьи его можно скачать… из таблицы текущих разработок). А в статье лучше расскажу что-нибудь такое, чего в даташитах не напишут.
Работы над микроконтроллером (далее МК) начались в 2012м году компанией ООО «НПП «Цифровые решения» по заказу ОАО «НИИЭТ» (г. Воронеж.). На ядро ARM Cortex-M4F и часть коммуникационных периферийных модулей были приобретены лицензии, а часть модулей были разработаны этой компанией самостоятельно: модули ШИМ, контроллер АЦП (не сам АЦП, а менеджер по управлению им), модуль захвата CAP и модуль квадратурного декодера QEP. НПП «Цифровые решения» сначала изготовила макет микроконтроллера на ПЛИС Kintex7, который реализовывал всю логику будущего микроконтроллера, включая ARM ядро. Но ПЛИС – это свободно перепрограммируемое изделие, что позволяет исправлять ошибки в логике МК, если они обнаруживаются после прохода тестов (это помимо тестирования на симуляторе). Но как тестировать motorcontrol микроконтроллер? Помимо синтетических тестов, конечно же на реальной задаче управления электродвигателем! Для этого НПП «Цифровые решения» обратились к нам – в ООО «НПФ Вектор», так как у нас очень большой опыт работы в сфере электропривода на базе МК Texas Instruments, хотя скорее потому, что мы сидим в соседнем здании. В совместных обсуждениях при проектировании периферии для управления электродвигателям было решено взять за образец TMS320F28335 Texas Instruments (TI), так как этот микроконтроллер имеет, наверное, самую мощную и гибкую периферию motorcontrol, заслуженно пользующуюся мировым уважением. Поэтому, вооружившись даташитами TI, «Цифровые решения» создали на их основе внутреннюю логику работы модулей ШИМ, CAP и QEP для К1921ВК01Т. Кроме того, по опыту работы с МК TI мы дополнительно предложили некоторые улучшения, которых не хватает у TI. Это фильтр коротких импульсов в модуле ШИМ (не все драйверы силовых ключей любят открытие/закрытие на очень короткий промежуток времени, IGBT может попасть в линейный режим), это некоторые нюансы в модуле квадратурного декодера, которые позволяют избавиться от проблем с переключением делителей счетчиков на ходу и т.п. «Цифровые решения» учли их и расширили соответствующим образом функционал периферии по сравнению с модулями TI.
Во время того, как НПП «Цифровые решения» разрабатывали внутреннюю логику работы модулей, мы в «НПФ Вектор» делали стенд для тестирования будущего микроконтроллера. Это был небольшой преобразователь частоты на шести транзисторах («сервоусилитель»), который цепями управления подключался к макету микроконтроллера на ПЛИС, а силовой частью подключался к небольшому серводвигателю с датчиками положения Холла (для проверки модуля CAP) и квадратурным датчиком положения (для проверки модуля QEP). Наша цель была такая: написать программное обеспечение для микроконтроллера, чтобы обеспечивалось полноценное векторное управление электродвигателем, используя любой датчик положения по выбору или оба сразу. И, конечно же, сообщать о всех найденных проблемах в периферии «Цифровым решениям».
Несмотря на множество собственных тестов МК у «Цифровых решений», в ходе испытаний на живом электродвигателе было найдено немало ошибок. В основном они были связаны с неточной реализацией внутренней логики блоков, которая не была описана в явном виде в даташитах Texas Instruments. Например, что должен выдавать модуль ШИМ, если уставка сравнения задана выше периода таймера? Или если для квадратурного декодера включен делитель входного сигнала, должен ли модуль детектировать смену направления вращения по деленному сигналу или по оригинальному входному? Ответы на эти вопросы могут быть очевидны электроприводчику, но не очевидны архитектору логики микроконтроллеров. Насколько мы смогли, настолько мы подобные баги совместно с «Цифровыми решениями» выловили. Привод успешно заработал в векторном управлении без каких-либо проблем. Однако все баги таким тестированием мы, конечно же, охватить не могли – наверняка в других задачах ошибки начнут вылезать еще. Но для этого и существует errata и новые ревизии микроконтроллеров: чтобы исправить баги, нужно их сначала насобирать. После завершения отладки логики МК на ПЛИС «Цифровыми решениями» была сделана «разводка» МК (или как там это называется у микроконтроллеров? Топология?), после чего все результаты работы были переданы в НИИЭТ. К слову, мы уже нашли несколько ошибок после выпуска МК в «камне», но НИИЭТ посчитал их пока недостаточно критичными, чтобы менять разводку МК: накопятся еще – исправят.
Еще надо сказать, что микроконтроллер пережил несколько названий. Сначала во время разработки он имел кодовое название «МС01», затем опытная партия камней называлась NT32M4F1, а затем он уже стал К1921ВК01Т (причем в названии в одних местах буквы пишут русские, в других английские). Поэтому если увидите эти названия в ранних статьях и публикациях по этому МК, не удивляйтесь.
В настоящее время (на начало 2016г) у НИИЭТ готова к продаже первая партия микроконтроллеров, которая уже начала поступать к заказчикам. Кристаллы корпусированы часть в пластик, часть в керамику (чтобы в ответственных применениях не получилось как сами_знаете_с_чем). Цена камня в пластике на конец 2015-го года, кажется, была чуть меньше 3 т.р., что выше цены TI TMS320F28335 при покупке в России (на момент написания статьи коэффициент пересчета «их» цен в «наши» составлял 76). Однако в TMS320F28335 нет пользовательской памяти и часов, нужно ставить внешние, из-за чего стоимость в итоге становится сравнимой. Это делает К1921ВК01Т перспективным не только в плане импортозамещения, но и для простых «меркантильных интересов». Хотя это сравнение, конечно, не совсем корректное – можно найти кучу примеров более дешевых кристаллов на Cortex-M4F и с большей тактовой частотой, но с меньшем количеством периферии. Поэтому для простых задач К1921ВК01Т будет избыточно и большим, и дорогим. Но для основного применения (управление электродвигателями и сложной силовой электроникой) – он конкурентоспособен.
Мы год назад выступали с докладом на выставке по этому поводу, презентацию можно найти здесь. Проведенные нами тесты, конечно, не претендуют на особую точность – всё-таки мы запускали не настоящие бенчмарки, а «закатали» в тест всё ту же векторную систему управления (а что ещё может волновать электроприводчиков?). Но краткий пересказ презентации таков: архитектура ARM Cortex-M4F отстает от DSP ядра C28 TI на среднестатистических расчетах, требуемых для задач электропривода. Если снизить точность расчетов, там, где это можно, использовав аппроксимированные тригонометрические функции и прочее, можно сократить этот разрыв где-то до 15%. Но при этом тактовая частота топовых ядер С28 (тот же TMS320F28335) составляет 150МГц, а частота К1921ВК01Т – 100МГц. Поэтому со всеми оптимизациями библиотек К1921ВК01Т эквивалентен по вычислительной мощности где-то МК TI серии piccolo частотой 90МГц. Что можно трактовать как… очень неплохо, на наш взгляд, потому что если правильно использовать все аппаратные навороты нового МК типа DMA и самофильтрующего измерения АЦП, то можно неплохо сэкономить на тактах. Так или иначе у нас получилось «запихать» в К1921ВК01Т наш самый требовательный к производительности проект, базирующийся на TMS320F2810 (150МГц, ядро C28), который с треском уже влезает в этот самый 2810.
А что с ними может быть, это же ARM! Обычный, без всяких «но». Берете любой JTAG, любую среду разработки, но… нет, все-таки любая не заработает. «Но» заключается в прошивке флеш-памяти. Несмотря на то, что само ядро ARM стандартизировано и любой JTAG и среда к К1921ВК01Т подключатся, с прошивкой флеша не всё так просто. Кажется, каждый производитель микроконтроллеров считает своим долгом сделать именно свои регистры для работы с прошивкой своей флеш-памяти, поэтому создатели средств разработки мучаются с поддержкой всего этого зоопарка. Не отстает в этом плане и К1921ВК01Т – там методы работы с флеш тоже свои. Но если для именитых производителей программаторы флеш памяти (драйвер, прошивальщик или как это назвать?) в средах разработки написаны и работают «из коробки», то для К1921ВК01Т всё работает только для тех сред, для которых написали программаторы в НИИЭТ. К счастью, для IAR и Keil все уже готово и примеры проектов с инструкциями по прошивке могут быть найдены на форуме НИИЭТ, а также в открытом репозитории на Bitbucket, который ведет НИИЭТ. Кроме того, мы в «НПФ Вектор» написали поддержку программирования флеш К1921ВК01Т для OpenOCD (Open On-Chip Debugger). Это такая прослойка между отладчиком GDB и железом в виде разных JTAG-эмуляторов и разных камней. Но пока мы тянули с разрешением конфликтов и «код ревью» в репозитории OpenOCD, разработчики НИИЭТ написали всё тоже самое, но своё и лучше (они еще добавили помимо прожига основной флеш-памяти функцию прожига пользовательской), но… это всё лирика. Что же дает этот OpenOCD? Это своеобразный слой абстракции железа, что позволяет сделать свою свободную и бесплатную среду разработки для К1921ВК01Т на базе любой популярной IDE. Мы в «Векторе» любим Eclipse (потому что среда Code Composer Studio от TI, начиная с v4 на нем основана, мы к нему привыкли и вообще, нет на свете IDE лучше Eclipse). А разработчики НИИЭТ сделали среду разработки на Qt Creator. Но, в общем, смысл и там и там один: берется среда, берется набор свободных кросс-средств разработки GCC, берется плагин для работы с OpenOCD, сам OpenOCD, немного конфигов, немного магии… и вы уже полноценно работаете с К1921ВК01Т, забыв про IAR и Keil. На момент написания статьи свою сборку Eclipse (назвали мы её VectorIDE) для К1921ВК01Т мы выложили у себя на сайте, рецепт по приготовлению Qt Creator смотрите на форуме НИИЭТ. Лично мы ведем все проекты для К1921ВК01Т в бесплатной среде и вам советуем – набор компиляторов GCC не особо отстает от фирменных IARовских (смотрите всю ту же нашу презентацию), а зато, если вы солидная фирма, вам не нужно закупать дорогое импортное ПО (уже с коэффициентом пересчета 76, Карл! 78!).
Ах, да. Есть еще кое-что. Называется оно Codemaster++[ARM]. Это 100% отечественная среда разработки, включая компиляторы, и предназначенная также для К1921ВК01Т. Мы исследовали год назад её первые версии, но нашли что она была еще не готова, немного по части компиляторов и сильно по части удобства редактирования кода (хотя в этом она может посоревноваться с IAR, кто понимает, о чём я). Зато она маленькая и быстрая, а по интерфейсу напоминает какой-нибудь «хакерский» отладчик типа OllyDbg (сравните: раз и два). В общем, возможно, кому-то будет интересно. Надо сказать, что разработчики (компания «Фитон») очень старались, даже запрашивали в свое время наш бенчмарк а-ля «векторное управление двигателем» чтобы оптимизировать свои компиляторы.
На начало 2016г в природе известно четыре отладочных платы на К1921ВК01Т. Это наша VectorCARD K1921BK01T и другие… от конкурентов. Ладно, так и быть, вот ссылки LDM-HELPER-K1921BK01T и MBS-К1921ВК01Т. Еще, кажется, у самого НИИЭТ есть своя плата NIIET_1921BK01T, но на их сайте, видимо, она от меня прячется – если кто-то обнаружит ссылку, с удовольствием дополню статью. В чём между ними разница? Мы продаем не голую плату, а комплект с инвертором, электродвигателем, векторным управлением в исходных кодах на Си (на базе того, что писали в свое время для «Цифровых решений»), а также с программой верхнего уровня и драйвером CANopen для наблюдения всех процессов внутри привода — смотрите нашу первую статью. Поэтому если вы хотите просто поиграть с новым МК, мигая светодиодом или пересылая данные по всяким интерфейсам связи, то оптимальнее будет купить отладочные платы конкурентов (хотя у нас тоже есть вариант голой платы за 15 т.р., но она совсем «голая» — одни выводы). Однако если вы хотите создать на новом МК электропривод, то наш отладочный комплект и ПО может сэкономить вам полгода-год времени разработки (а может и больше, в зависимости от того, знаете ли вы теорию электропривода и есть ли у вас собственные средства отладки и осциллографирования, аналогичные нашим). Если вы внимательно читали первую статью, то, наверное, помните, что отладить систему управления для электропривода без средств визуализации процессов внутри – невозможно. И если у Texas Instruments среда разработки умеет «из коробки» показывать осциллограммы, построенные по данным массива оперативной памяти МК, то для ARM в универсальных средах разработки (не от конкретного производителя МК) такой функции пока не наблюдается (если это читают разработчики «Фитон» – не хотите ли доработать построителем осциллограмм свою Codemaster++[ARM]? Это же несложно сделать!). В нашем отладочном комплекте такие средства визуализации осциллограмм присутствуют, поэтому можно сразу увидеть всё, что полагается для управления электродвигателями: форму токов фаз, напряжения, входы/выходы всех регуляторов и т.п. Цена нашего комплекта – большая, ориентировочно около 130 т.р. (один только электродвигатель со всеми датчиками положения стоит на текущий момент около 30 т.р.). Но для организации, желающей освоить новое изделие, это не должно быть критично – одна только коммерческая среда разработки под ARM может стоить больше.
Какие главные недостатки нового К1921ВК01Т можно отметить уже сейчас?
• Во-первых, это несомненно сырой продукт, так как его по-настоящему программировали пока от силы человек 10-20. Когда большее количество разработчиков на него насядут, будут обнаруживаться баги – будут выходить новые ревизии. Так что готовьтесь. Но, тем не менее, двигатели им крутить можно – крутил лично.
• На текущий момент документация тоже сыровата. Ошибок там мало, но некоторые вещи объяснены… не совсем понятно. Можно было бы расписать чуть подробнее, привести примеры. Думаю, со временем она доработается.
• Микроконтроллер очень большой и навороченный. Это для кого-то плюс, для кого-то минус. Очень немногие применения охватят весь спектр его возможностей. Уже сейчас НИИЭТ думает над серией МК на его основе, с разными корпусами и набором периферии. Но пока — есть только К1921ВК01Т.
• У него специфический АЦП. Часто производители МК ставят один быстрый (12 MS/s) модуль АЦП и мультиплексируют его по нескольким каналам — например, так сделано у Texas Instruments в серии C2000. Но в К1921ВК01Т стоит 12 двухканальных медленных (1.7MS/s) модулей АЦП, работающих параллельно. Чем это плохо помимо невозможности очень быстро что-то измерить? Если АЦП в МК один, то на плате контроллера можно на два неиспользуемых канала подать калиброванные референсные сигналы, скажем, 1В и 2В, и по ним вычислить и скомпенсировать мультипликативную ошибку и ошибку смещения этого одного АЦП, распространив коррекцию на все каналы (АЦП же один). Когда АЦП в МК много, такой трюк не пройдет – все они будут иметь свои персональные ошибки. Трюк с калибровкой мы применяли на МК Texas Instruments типа TMS320F2810 (это описывается в даташите и рекомендуется), здесь же в К1921ВК01Т без калибровки мы получили более низкую точность АЦП по сравнению с калиброванным TMS320F2810. Нам пришлось сделать специальный стенд для калибровки независимо каждого модуля АЦП К1921ВК01Т и зашить калибровочную таблицу во встроенную пользовательскую память. Тогда точность аналоговых измерений получилась сравнимой (от температуры калибровка почти не уплывает — проверяли). Наверное, НИИЭТ стоит прошивать такую таблицу на заводе, было бы удобно. Но пока во флеше пусто.
• Частота 100МГц, конечно, низковата, хотелось бы быстрее. Но что есть, то есть. Хотя в некоторых местах пишут частоту 125МГц – всё зависит от температуры окружающей среды. «Цифровые решения» сообщили такую неофициальную информацию: внутри кристалл рассчитан на максимум 125 градусов. Температура на нём выше примерно на 15 градусов, чем окружающая среда. По проекту К1921ВК01Т должен работать при 85 градусах окружающей среды + запас, что гарантировано достигается на 100МГц. По факту можно разгонять МК выше 100МГц, отдельные образцы работали и на 140-170МГц, но зависит от образца. Поэтому, если кристалл не перегревать, то его можно разгонять, если кому-то это требуется. Но если в вашем применении жарко (+85), то лучше выше 100МГц не задирать.
• Пока нет никакого официального загрузчика (программатора) через интерфейсы связи (CAN, RS). Шить МК можно только через JTAG/SWD. Соответственно, если контроллер изделия находится в закрытом корпусе, то нужно писать свой загрузчик для желаемого интерфейса связи. Или ждать, пока напишет НИИЭТ. Пока — нету, но, думаю, появится.
Хотя какое еще заключение? Всё только начинается! Наконец-то есть отечественный микроконтроллер, на котором действительно можно сделать электропривод! До этого все существующие отечественные МК были или слабы ядром, или слабы периферией, чтобы справляться с задачами motorcontrol. Но теперь – полная свобода для самых сложных структур управления и самой сложной силовой части. Особенно хочется отметить перспективы этого микроконтроллера для станочных сервоприводов. До настоящего времени в России не было возможности изготовить полностью отечественный многокоординатный прецизионный станок, так как (одна из причин) не на чем было сделать качественный сервопривод. Теперь такой микроконтроллер есть.
Векторное управление электродвигателем «на пальцах»
— Что такое векторное управление?
— Держать ток под 90 градусов.
Термин «векторное управление» электродвигателями знаком всем, кто хоть как-то интересовался вопросом, как с помощью микроконтроллера управлять двигателем переменного тока. Однако обычно в любой книге по электроприводу глава про векторное управление находится где-нибудь ближе к концу, состоит из кучи волосатых формул с отсылками ко всем остальным главам книги. Отчего разбираться в этом вопросе совсем не хочется. И даже самые простые объяснения всё равно держат путь через дифференциальные уравнения равновесия, векторные диаграммы и кучу другой математики. Из-за чего появляются примерно вот такие вот попытки как-то закрутить двигатель без использования мат.части. Но на самом деле векторное управление – это очень просто, если понимать принцип его работы «на пальцах». А там уже и с формулами разбираться в случае надобности будет веселее.
Принцип работы синхронной машины
Рассмотрим принцип работы самого простого двигателя переменного тока – синхронной машины с постоянными магнитами. Удобный пример – компас: его магнитная стрелка представляет из себя ротор синхронной машины, а магнитное поле Земли – магнитное поле статора. Без внешней нагрузки (а в компасе её нет, если не считать трение и жидкость, гасящую колебания стрелки) ротор всегда ориентируется по полю статора. Если мы будем держать компас и вращать под ним Землю, то стрелка будет крутиться вслед, совершая работу по перемешиванию жидкости внутри компаса. Но есть и чуть более простой способ – можно взять внешний магнит, например, в виде стержня с полюсами на концах, поле которого значительно сильнее магнитного поля Земли, поднести его к компасу сверху и вращать магнит. Стрелка будет двигаться вслед за вращающимся магнитным полем. В настоящем синхронном двигателе поле статора создается электромагнитами – катушками с током. Схемы обмоток там сложные, но принцип один – они создают статором магнитное поле, направленное в нужную сторону и имеющее нужную амплитуду. Посмотрим на следующий рисунок (Рисунок 1). В центре изображен магнит – ротор синхронного двигателя («стрелка» компаса), а по бокам два электромагнита – катушки, создающие каждая свое магнитное поле, одна в вертикальной оси, другая в горизонтальной.

Рисунок 1. Принцип действия синхронной электрической машины
Магнитный поток катушки пропорционален току в ней (в первом приближении). Нас будет интересовать магнитный поток от статора в том месте, где расположен ротор, т.е. в центре рисунка (краевыми эффектами, рассеянием и всем прочим пренебрегаем). Магнитные потоки двух перпендикулярно расположенных катушек векторно складываются, образуя для взаимодействия с ротором один общий поток. Но так как поток пропорционален току в катушке, удобно рисовать непосредственно вектора токов, сонаправив их с потоком. На рисунке показаны некоторые токи Iα и Iβ, создающие магнитные потоки по осям α и β соответственно. Суммарный вектор тока статора Is создает сонаправленый ему магнитный поток статора. Т.е. по сути Is символизирует внешний магнит, который мы подносили к компасу, но созданный электромагнитами – катушками с током.
На рисунке ротор расположен в произвольном положении, но из этого положения ротор будет стремиться повернуться согласно магнитному потоку статора, т.е. по вектору Is (положение ротора в этом случае показано пунктирной линией). Соответственно, если подать ток только в фазу α, скажем, Iα = 1А, ротор встанет горизонтально, а если в β, вертикально, а если приложить Iβ = -1А то перевернется на 180 градусов. Если запитать ток Iα по закону синуса, а Iβ по закону косинуса от времени, то будет создано вращающееся магнитное поле. Ротор будет следовать за ним и крутиться (как стрелка компаса следует за вращением магнита руками). Это базовый принцип работы синхронной машины, в данном случае двухфазной с одной парой плюсов.
Давайте нарисуем график момента двигателя в зависимости от углового положения вала ротора и вектора тока Is статора – угловую характеристику синхронного двигателя. Эта зависимость синусоидальная (Рисунок 2).

Рисунок 2. Угловая характеристика синхронной машины (здесь есть некоторая историческая путаница со знаками момента и угла, из-за чего часто рисуют характеристику перевернутой относительно горизонтальной оси).
Чтобы получить этот график на практике, можно поставить на вал ротора датчик вращающего момента, затем включить любой вектор тока, например, просто подать ток в фазу α. Ротор повернется в соответствующее положение, которое нужно принять за ноль. Потом через датчик момента «руками» нужно поворачивать ротор, фиксируя на графике в каждой точке угол θ, на который повернули, и момент, который показал датчик. Т.е. нужно растягивать «магнитную пружину» двигателя через датчик момента. Самый большой момент окажется при угле в 90 градусов от вектора тока (от начала). Амплитуда получившегося максимального момента Ммакс пропорциональна амплитуде приложенного вектора тока. Будет приложен 1А, получим, скажем, Ммакс = 1 Н∙м (ньютон*метр, единица измерения вращающего момента), если подадим 2А, получим Ммакс = 2 Н∙м.
Из этой характеристики следует, что двигатель развивает наибольший момент, когда ротор находится под 90° к вектору тока. Так как мы при создании системы управления на микроконтроллере хотим получить от двигателя наибольший момент при минимуме потерь, а потери, в первую очередь, это ток в обмотках, то рациональнее всего ставить вектор тока всегда под 90° к магнитному полю ротора, т.е. перпендикулярно магниту на рисунке 1. Нужно поменять всё наоборот – не ротор едет к задаваемому нами вектору тока, а мы задаем вектор тока всегда под 90° к ротору, как бы он там не вращался, т.е. «прибить» вектор тока к ротору. Регулировать же момент двигателя будем амплитудой тока. Чем больше амплитуда – тем выше момент. А частота вращения, частота тока в обмотках это уже «не наше» дело – какая получится, как ротор будет вращаться, так и будет – мы управляем моментом на валу. Как ни странно, именно это и называется векторным управлением – когда мы управляем вектором тока статора так, чтобы он был под 90° к магнитному полю ротора. Хотя некоторые учебники дают более широкие определения, вплоть до такого, что векторным управлением называют вообще любые законы управления, где задействованы «вектора», но обычно под векторным управлением понимается именно приведенный выше способ управления.
Строим структуру векторного управления
Но как векторное управления достигается на практике? Очевидно, для начала понадобится знать положение ротора, чтобы было относительно чего отмерять 90°. Это проще всего сделать установив, собственно, датчик положения на вал ротора. Потом нужно разобраться, как создать вектор тока, поддерживая желаемые токи в фазах α и β. На двигатель-то мы прикладываем напряжение, а не ток… Но раз мы хотим что-то поддерживать, то нужно это измерять. Поэтому для векторного управления понадобятся датчики токов фаз. Далее нужно собрать структуру векторного управления в виде программы на микроконтроллере, которая будет делать всё остальное. Чтобы такое объяснение не было похоже на инструкцию «как нарисовать сову», давайте продолжим погружение.
Поддерживать ток микроконтроллером можно использовав программный ПИ (пропорционально-интегральный) регулятор тока и ШИМ. Например, структура с регулятором тока для одной фазы α показана ниже (Рисунок 3).

Рисунок 3. Замкнутая по току структура управления для одной фазы
Здесь задание тока iα_зад – некая константа, тот ток, который мы хотим поддерживать для этой фазы, например 1А. Задание поступает на сумматор регулятора тока, раскрытая структура которого показана выше. Если читатель не знает, как работает ПИ-регулятор – то увы и ах. Могу лишь посоветовать что-то из этого. Регулятор тока на выходе задает напряжение фазы Uα. Напряжение поступает на блок ШИМ, который рассчитывает задания скважностей (уставок сравнения) для таймеров ШИМ микроконтроллера, формирующих ШИМ на мостовом инверторе из четырех ключей, чтобы сформировать это Uα. Алгоритм может быть разный, например, для положительного напряжения ШИМим правой стойкой пропорционально заданию напряжения, на левой замкнут нижний ключ, для отрицательного ШИМим левой, на правой замкнут нижний. Не забываем добавить мёртвое время! В итоге такая структура делает программный «источник тока» за счет источника напряжения: мы задаем нужное нам значение iα_зад, а данная структура с определенным быстродействием его реализует.
Дальше, возможно, некоторые читатели уже подумали, что до векторной структуры управления осталось дело за малым – нужно поставить два регулятора тока, на каждую фазу по регулятору, и формировать на них задание в зависимости от угла с датчика положения ротора (ДПР), т.е. сделать что-то типа такой структуры (Рисунок 4):

Рисунок 4. Неправильная (наивная) структура векторного управления
Так делать нельзя. При вращении ротора переменные iα_зад и iβ_зад будут синусоидальными, т.е. задание на регуляторы тока будет всё время меняться. Быстродействие регулятора не бесконечно, поэтому при изменении задания он не мгновенно его отрабатывает. Если задание постоянно менять, то регулятор будет всё время его догонять, никогда не достигая. И с ростом скорости вращения двигателя отставание реального тока от заданного будет всё больше и больше, пока желаемый угол в 90° между током и магнитом ротора совсем не перестанет на него быть похожим, а векторное управления не перестанет быть таковым. Поэтому делают по-другому. Правильная структура следующая (Рисунок 5):

Рисунок 5. Структура векторного датчикового управления для двухфазной синхронной машины
Здесь добавились два блока – БКП_1 и БКП_2: блоки координатных преобразований. Они делают очень простую вещь: поворачивают вектор на входе на заданный угол. Причем БПК_1 поворачивает на +ϴ, а БКП_2 на —ϴ. Это вся разница между ними. В иностранной литературе их называют преобразованиями Парка (Park transformation). БКП_2 делает преобразование координат для токов: от неподвижных осей α и β, привязанных к статору двигателя, к вращающимся осям d и q, привязанных к ротору двигателя (используя для этого угол положения ротора ϴ). А БКП_1 делает обратное преобразование, от задания напряжения по осям d и q делает переход к осям α и β. Формул для преобразования координат не привожу, но они простые и очень легко ищутся. Собственно, в них нет ничего сложнее школьной геометрии (Рисунок 6):

Рисунок 6. Координатные преобразования из неподвижных осей α и β, привязанных к статору двигателя, к вращающимся осям осям d и q, привязанных к ротору
То есть вместо «вращения» задания регуляторов (как было в прошлой структуре), вращаются их входы и выходы, а сами регуляторы работают в статическом режиме: токи d, q и выходы регуляторов в установившемся режиме постоянны. Оси d и q вращаются вместе с ротором (так их вращает сигнал с датчика положения ротора), при этом регулятор оси q регулирует как раз тот ток, который в начале статьи я называл «перпендикулярным полю ротора», то есть это моментообразующий ток, а ток d сонаправлен с «магнитом ротора», поэтому он нам не нужен и мы задаём его равным нулю. Такая структура избавлена от недостатка первой структуры – регуляторы токов даже не знают, что что-то где-то крутится. Они работают в статическом режиме: отрегулировали каждый свой ток, вышли на заданное напряжение – и всё, как ротор от них не убегай, они про это даже не узнают: всю работу по повороту делают блоки координатных преобразований.
Для объяснения «на пальцах» можно привести какую-нибудь аналогию.Для линейного движения пусть это будет, например, городской автобус. Он всё время то разгоняется, то тормозит, то едет назад и вообще ведёт себя как хочет: это ротор двигателя. Также есть вы на автомобиле рядом, едете параллельно: ваша задача быть ровно посредине автобуса: «держать 90°», вы – это регуляторы тока. Если автобус все время меняет скорость – вы тоже должны соответственно менять скорость и всё время её отслеживать. Но теперь сделаем для вас «векторное управление». Вы залезли внутрь автобуса, встали посередине и держитесь за поручень – как автобус не убегай, вы легко справляетесь с задачей «быть посередине автобуса». Аналогично и регуляторы токов, «катаясь» во вращающихся осях d, q ротора, живут легкой жизнью.
Приведенная выше структура действительно работает и используется в современных электроприводах. Только в ней не хватает целой кучи мелких «улучшалок», без которых её уже не принято делать, типа компенсации перекрестных связей, разных ограничений, ослабления поля и т.п. Но базовый принцип именно такой.
А если нужно регулировать не момент привода, а всё-таки скорость (по правильному угловую скорость, частоту вращения)? Ну тогда ставим еще один ПИ-регулятор – регулятор скорости (РС). На вход подаем задание скорости, а на выходе имеем задание момента. Так как ток оси q пропорционален моменту, то можно для упрощения выход регулятора скорости подать сразу на вход регулятора тока оси q, вот так (Рисунок 7):

Рисунок 7. Регулятор скорости для векторного управления
Здесь ЗИ – задатчик интенсивности, плавно изменяет свой выход, чтобы двигатель разгонялся с нужным темпом, а не гнал на полном токе до задания скорости. Текущая частота вращения ω взята из обработчика датчика положения ротора, так как ω это производная от углового положения ϴ. Ну или можно просто время между импульсами датчика засекать…
Как сделать тоже самое для трехфазного двигателя? Ну, собственно, ничего особенного, добавляем еще один блок и меняем модуль ШИМ (Рисунок 8).

Рисунок 8. Структура векторного датчикового управления для трехфазной синхронной машины
Трехфазные токи, точно так же как и двухфазные, служат для одной цели – создать вектор тока статора Is, направленный в нужную сторону и имеющий нужную амплитуду. Поэтому трехфазные токи можно просто пересчитать в двухфазные, а дальше оставить ту же систему управления, что уже была собрана для двухфазной машины. В англоязычной литературе такой «пересчёт» называют преобразованиями Кларк – Clarke transformation (Эдит Кларк – это она), у нас — фазными преобразованиями. В структуре на рисунке 8, соответственно, это делает блок фазных преобразований. Делаются они опять при помощи курса школьной геометрии (Рисунок 9):

Рисунок 9. Фазные преобразования – из трех фаз к двум. Для удобства принимаем равенство амплитуды вектора Is амплитуде тока в фазе
Думаю, комментарии не нужны. Немного слов про ток фазы C. Туда можно не ставить датчик тока, так как три фазы двигателя соединены в звезду, и по закону Кирхгофа всё, что втекло через две фазы, должно вытечь из третьей (если, конечно, у вас в двигателе не пробита изоляция, и половина не утекла куда-то на корпус), поэтому ток фазы C вычисляют как скалярную сумму токов фаз A и B со знаком минус. Хотя третий датчик иногда ставят чтобы снизить погрешность измерений.
Также нужна полная переделка модуля ШИМ. Обычно для трехфазных двигателей используют трехфазный шестиключевой инвертор. На рисунке задание напряжения поступает всё еще в двухфазных осях. Внутри модуля ШИМ с помощью обратных фазных преобразований можно пересчитать это в напряжения фаз A, B, C, которые надо приложить в этот момент к двигателю. А вот что делать дальше… Возможны варианты. Наивный метод – это задать на каждую стойку инвертора скважность, пропорциональную желаемому напряжению плюс 0.5. Это называется синусоидальной ШИМ. Именно такой метод применил автор в habrahabr.ru/post/128407. В этом методе всё хорошо, кроме того, что таким методом будет недоиспользован инвертор по напряжению – т.е. максимальное напряжение, которое будет получено, окажется меньше, чем вы могли бы получить, если бы использовали более совершенный метод ШИМ.
Посчитаем. Пусть у вас есть классический преобразователь частоты, питающийся от промышленной трехфазной сети 380В 50Гц. Здесь 380В это линейное (между фазами) действующее напряжение. Так как в преобразователе стоит выпрямитель, он выпрямит это напряжение и на шине постоянного тока окажется напряжение, равное амплитудному линейному напряжению, т.е. 380∙√2=540В постоянного напряжения (по крайней мере без нагрузки). Если мы применим синусоидальный алгоритм расчета в модуле ШИМ, то амплитуда максимального фазного напряжения, которое получится у нас сделать, окажется равной половине от напряжения на шине постоянного тока, т.е. 540/2=270В. Пересчитаем в действующее фазное: 270/√2=191В. А теперь в действующее линейное: 191∙√3=330В. Теперь можем сравнить: вошло нам 380В, а вышло 330В… И больше с этим типом ШИМ никак нельзя. Для исправления этой проблемы используется так называемый векторный тип ШИМ. В нем на выходе будут снова 380В (в идеальном случае без учета всех падений напряжения). Векторная ШИМ никакого отношения к векторному управлению электродвигателем не имеет. Просто в его обосновании снова используется немного школьной геометрии, поэтому он и называется векторным. Однако его работу на пальцах не объяснить, поэтому отправлю читателя к книжкам (в конце статьи) или к википедии. Могу еще привести картинку, которая немного намекает на разницу в работе синусоидальной и векторной ШИМ (Рисунок 10):

Рисунок 10. Изменение потенциалов фаз для скалярной и векторной ШИМ
Виды датчиков положения
Кстати, а какие датчики положения используются для векторного управления? Чаще всего используются четыре типа датчиков. Это квадратурный инкрементальный энкодер, датчик на основе элементов Холла, абсолютный датчик положения и сельсинный датчик.
Квадратурный энкодер не выдает абсолютного положения ротора – по своим импульсам он позволяет лишь определить, сколько вы проехали, но не куда и откуда (как начало и конец связаны с расположением магнита ротора). Поэтому для векторного управления синхронной машиной сам по себе он не подходит. Немного спасает ситуацию его реперная метка (индекс) – она одна на механический оборот, если до неё доехать, то абсолютное положение становится известно, а от неё можно уже отсчитывать сколько проехали квадратурным сигналом. Но как до этой метки доехать в начале работы? В общем, это не всегда неудобно.
Датчик на основе элементов Холла – это грубый датчик. Он выдает всего несколько импульсов на оборот (в зависимости от кол-ва элементов Холла, для трехфазных двигателей их обычно три, т.е. шесть импульсов), позволяя знать положение в абсолютной величине, но с низкой точностью. Точности обычно хватает, чтобы держать угол вектора тока так, чтобы двигатель по крайней мере ехал вперед, а не назад, но момент и токи будут пульсировать. Если двигатель разогнался, то можно начать программно экстраполировать сигнал с датчика по времени – т.е. строить из грубого дискретного угла линейно изменяющийся угол. Это делается на основе предположения, что двигатель вращается с примерно постоянной скоростью, как-то так (Рисунок 11):

Рисунок 11. Работа датчика положения на элементах Холла для трехфазной машины и экстраполяция его сигнала
Часто для серводвигателей используется сочетание энкодера и датчика Холла. В этом случае можно сделать единый программный модуль их обработки, убирая недостатки обоих: делать экстраполяцию угла, приведенную выше, но не по времени, а по меткам с энкодера. Т.е. внутри от фронта до фронта датчика Холла работает энкодер, а каждый фронт Холла чётко инициализирует текущее абсолютное угловое положение. В этом случае неоптимальным (не под 90°) окажется лишь первое движение привода, пока он не доехал до какого-нибудь фронта датчика Холла. Отдельную проблему в этом случае представляет обработка неидеальности и того и другого датчика — симметрично и равномерно элементы Холла редко кто располагает…
В еще более дорогих применениях используют абсолютный датчик положения с цифровым интерфейсом (абсолютный энкодер), который сразу выдает абсолютное положение и позволяет не испытывать описанных выше проблем.
Если в электродвигателе очень жарко, а также когда требуется повышенная точность измерения угла, используют «аналоговый» сельсинный датчик (резольвер, вращающийся трансформатор). Это маленькая электрическая машина, используемая как датчик. Представьте, что в рассмотренной нами синхронной машине на рисунке 1 вместо магнитов стоит еще одна катушка, на которую мы подаем высокочастотный сигнал. Если ротор стоит горизонтально, то сигнал наведется только в катушку статора фазы α, если вертикально – то только в β, если перевернуть его на 180 – то изменится фаза сигнала, а в промежуточных положениях наводится и туда и сюда по закону синуса/косинуса. Соответственно, измеряя амплитуду сигнала в двух катушках, по соотношению этой амплитуды и по фазовому сдвигу можно также определять положение. Установив такую машину как датчик к основной, можно узнавать положение ротора.
Есть еще много экзотических датчиков положения, особенно для сверхвысокоточных применений, например, для изготовления электронных чипов. Там в ход идут уже любые физические явления, чтобы только узнать положение наиболее точно. Их рассматривать не будем.
Упрощение векторного управления
Как вы поняли, векторное управление достаточно требовательное – и датчиков положения ему наставь, и датчиков тока, и ШИМ ему векторную, и микроконтроллер не абы какой, чтобы всю эту математику обсчитывать. Поэтому для простых применений его упрощают. Для начала можно исключить датчик положения, сделав бездатчиковое векторное управление. Для этого используют немного больше математической магии, находящейся в желтом прямоугольнике (Рисунок 12):

Рисунок 12. Структура бездатчикового векторного управления
Наблюдатель – это такой блок, на который подается информация о приложенном к двигателю напряжении (например, из задания на модуль ШИМ) и о токах в двигателе с датчиков. Внутри наблюдателя работает модель электродвигателя, которая, грубо говоря, пытается подстроить свои токи в статоре под измеренные с реального двигателя. Если у неё это получилось, то можно считать, что и положение моделируемого внутри вала ротора тоже совпадает с реальным и им можно пользоваться для нужд векторного управления. Ну это, конечно, совсем упрощённо. Видов наблюдателей таких – не пересчитать. Каждый аспирант по специальности «электропривод» пытается изобрести именно свой, который чем-то лучше других. Основной принцип – отслеживание ЭДС электродвигателя. Поэтому чаще всего бездатчиковая система управления работоспособна только на относительно высокой частоте вращения, где ЭДС большая. А также имеет еще ряд недостатков по сравнению с наличием датчика: нужно знать параметры двигателя, быстродействие привода ограничено (если частота вращения резко меняется, наблюдатель может не успеть её отследить и какое-то время «врать», а то и «развалиться» совсем), настройка наблюдателя – это целая процедура, для его качественной работы нужно точно знать напряжение на двигателе, точно измерять его токи и т.п.
Есть и другой вариант упрощения. Например, можно сделать так называемую «автокоммутацию». В этом случае для трехфазного двигателя отказываются от сложного метода ШИМ, отказываются от сложной векторной структуры и начинают просто включать фазы двигателя по датчику положения на элементах Холла, даже иногда без всякого токоограничения. Ток в фазах получается не синусоидальный, а трапецеидальный, прямоугольный или еще более искаженный. Но стараются сделать так, чтобы средний вектор тока был всё равно под 90 градусов к «магниту ротора» выбором момента включения фаз. При этом, включая фазу под напряжение, неизвестно, когда же в фазе двигателя нарастет ток. На низкой частоте вращения он это делает быстрее, на высокой, где мешает ЭДС машины, медленнее, еще темп нарастания тока зависит от индуктивности двигателя и т.п. Поэтому, даже включая фазы точно в нужный момент времени, совсем не факт, что средний вектор тока окажется в нужном месте и с нужной фазой – он может как опережать, так и запаздывать относительно оптимальных 90 градусов. Поэтому в таких системах вводят настройку «опережения коммутации» – по сути просто время, насколько раньше нужно на фазу двигателя подавать напряжение, чтобы в итоге фаза вектора тока получилась более близка к 90 градусам. По-простому это называют «настройка таймингов». Так как ток в электродвигателе при автокоммутации не синусоидальный, то, если взять рассмотренную выше синусоидальную машину и управлять ей таким вот образом, момент на валу будет пульсировать. Поэтому в двигателях, предназначенных для автокоммутации, часто специальным образом меняют магнитную геометрию ротора и статора, чтобы они стали более подходящими к такому типу управления: ЭДС таких машин делают трапецеидальной, благодаря чему в режиме автокоммутации они работают лучше. Синхронные машины, оптимизированные для автокоммутации, получили название бесколлекторных двигателей постоянного тока (БДПТ) или по-английски BLDC (Brushless Direct Current Motor). Режим автокоммутации также часто называют вентильным режимом, а двигатели с ним работающие – вентильные. Но это всё просто разные названия, ничем не влияющие на суть (но матёрые электроприводчики часто страдают СПГС в вопросах, связанных с этими названиями). Есть неплохое видео, иллюстрирующее принцип работы таких машин. На нем показан обращенный двигатель, где ротор снаружи, а статор внутри:
А вот здесь есть курс статей по таким двигателям и аппаратной части системы управления.
Можно пойти даже на еще большее упрощение. Коммутировать обмотки так, чтобы одна фаза всё время оказывалась «свободна» и к ней не прикладывался ШИМ. Тогда в ней можно измерять ЭДС (наведенное в катушке фазы напряжение), и, когда это напряжение переходит через ноль, использовать это как сигнал датчика положения ротора, потому что фаза этого наведенного напряжения зависит как раз от положения ротора. Получается бездатчиковая автокоммутация, что широко используется в различных простеньких приводах, например, в «регуляторах» для пропеллеров авиамоделей. При этом надо помнить, что ЭДС машины появляется только на относительно высокой частоте вращения, поэтому для старта такие системы управления просто не спеша перебирают фазы, надеясь, что ротор двигателя будет следовать за подаваемым током. Как только ЭДС появилась, включается режим автокоммутации. Поэтому бездатчиковая система (такая простая, да и сложная чаще всего тоже) не подходит для задач, где двигатель должен уметь развивать момент на околонулевых частотах вращения, например, для тягового привода автомобиля (или его модели), сервопривода какого-то механизма и т.п. Зато бездатчиковая система с успехом подходит для насосов и вентиляторов, где как раз и применяется.
Но иногда делают даже и еще большее упрощение. Можно совсем отказаться от микроконтроллера, ключей, датчиков положения и прочего, осуществляя переключение фаз специальным механическим коммутатором (Рисунок 13):

Рисунок 13. Механический коммутатор для переключения обмоток
При вращении ротор сам переключает свои части обмоток, меняя приложенное к ним напряжение, при этом ток в роторе протекает переменный. Коммутатор располагают таким образом, чтобы магнитный поток ротора и статора снова оказывался близким к 90 градусам, дабы достичь максимума момента. Такие двигатели по наивности называют двигателями постоянного тока, но совершенно незаслуженно: внутри-то, после коллектора, ток все равно переменный!
Заключение
Все электрические машины работают схожим образом. В теории электропривода даже существует понятие «обобщенная электрическая машина», к которой сводят работу других. Показанные в статье объяснения «на пальцах» никоим образом не могут служить практическим руководством к написанию кода микроконтроллера. В статье рассмотрен хорошо если один процент информации, которая требуется для реализации настоящего векторного управления. Чтобы сделать что-то на практике, нужно, во-первых, знать ТАУ, хотя бы на уровне понимания, как работает ПИ-регулятор. Потом нужно всё-таки изучить математическое описание как синхронной машины, так и синтеза векторного управления. Также изучить векторную ШИМ, узнать, что такое пары полюсов, познакомиться с типами обмоток машин и прочее. Это можно сделать в свежей книге «Анучин А. С. Системы управления электроприводов. МЭИ, 2015», а также в «Калачев Ю. Н. Векторное регулирование (заметки практика)». Следует предостеречь читателя от погружения в формулы «старых» учебников по приводу, где основной упор сделан на рассмотрение характеристик электродвигателей при питании напрямую от трехфазной промышленной сети, без всяких микроконтроллеров и датчиков положения. Поведение двигателей в этом случае описывается сложными формулами и зависимостями, но для задачи векторного управления они почти никакой пользы не несут (если только изучить для саморазвития). Особенно следует с осторожностью относиться к рекомендациям старых учебников, где, например, сказано, что синхронная машина не должна работать на максимуме своего момента, так как там работа неустойчива и грозит опрокидыванием – для векторного управления всё это «вредные советы».
На каком микроконтроллере можно сделать полноценное векторное управление, читайте, например, в нашей статье Новый отечественный motor-control микроконтроллер К1921ВК01Т ОАО «НИИЭТ», а как это отлаживать в статье Способы отладки ПО микроконтроллеров в электроприводе. Также заходите на наш сайт: там, в частности, выложено два занудных видео, где показано на практике, как настроить ПИ-регулятор тока, а также как работает замкнутая по току и векторная бездатчиковая структура управления. Кроме того, можно приобрести отладочный комплект с готовой датчиковой векторной структурой управления на отечественном микроконтроллере.
P.S.
У специалистов прошу прощения за не совсем корректное обращение с некоторыми терминами, в частности с терминами «поток», «потокосцепление», «магнитное поле» и другими – простота требует жертв…
Автор: НПФ ВЕКТОР
Источник
Транзисторное управление двигателями в схемах на микроконтроллере
Электрический двигатель — это машина, преобразующая электрическую энергию в механическую. Первые электродвигатели появились в середине 19 века. Успехи в их разработке связывают с именами таких выдающихся физиков и инженеров, как Н.Тесла, Б.Якоби, Г.Феррарис, В.Сименс.
Различают электро двигатели постоянного и переменного тока. Преимущество первых заключается в возможности экономичного и плавного регулирования частоты вращения вала. Преимущество вторых — большая удельная мощность на единицу веса. В микроконтроллерной практике часто применяют низковольтные двигатели постоянного тока, используемые в бытовых и компьютерных вентиляторах (Табл. 2.13). Встречаются также конструкции с сетевыми двигателями.
Таблица 2.13. Параметры вентиляторов фирмы Sunon
Обмотку двигателя следует рассматривать как катушку с большой индуктивностью, поэтому её можно коммутировать обычными транзисторными ключами (Рис. 2.78, а…т). Главное — это не забыть про защиту от ЭДС самоиндукции.
В двигателях постоянного тока имеется возможность изменять направление вращения ротора в зависимости от полярности рабочего напряжения. В таких случаях широко используют мостовые схемы «Н-bridge» (Рис. 2.79, а…и).
Рис. 2.78. Схемы подключения электродвигателей через транзисторные ключи (начало):
а) регулирование скорости потока воздуха вентилятора M1. Конденсатор С/ уменьшает ВЧ- помехи. Диод VD1 защищает транзистор VT1 от выбросов напряжения. Резистор R1 определяет степень насыщения транзистора Г77, а резистор R2 закрывает его при рестарте MK. Частота импульсов ШИМ на выходе МК должна быть не менее 30 кГц, т.е. за пределами звукового диапазона, чтобы исключить неприятный «свист». Элементы С/ и R2 могут отсутствовать;
б) плавное регулирование частоты вращения вала двигателя M1 через канал ШИМ. Конденсатор С/ является первичным, а конденсатор С2— вторичным фильтром сигналов ШИМ; О
Рис. 2.78. Схемы подключения электродвигателей через транзисторные ключи
(продолжение):
в) транзисторы VT1, VT2 соединяются параллельно для увеличения суммарного коллекторного тока. Резисторы R1, R2 обеспечивают равномерную нагрузку по мощности на оба транзистора, что связано с разбросом у них коэффициентов И2]Э и ВАХ переходов «база — эмиттер»;
г) двигатель M1 (фирма Airtronics) имеет «цифровой» вход управления, что позволяет подключать к нему MK напрямую. Транзисторные ключи (драйверы) находятся внутри двигателя;
д) два отдельных источника питания позволяют значительно снизить влияние на MK электрических помех, которые генерирует двигатель M1. Система будет работать устойчивее. GB1 — это маломощная литиевая батарея, GB2, GB3 — это пальчиковые гальванические элементы с общим напряжением 3.2 В и мощностью, достаточной для запуска и работы двигателя M1\
е) параллельные резисторы R2, R3 служат ограничителями тока, протекающего через двигатель M1. Кроме того, они стабилизируютток в нагрузке, если транзистор VT1 находится в активном режиме или на грани входа в режим насыщения;
ж) MK включает/выключает двигатель M1. Резистором R3 подстраивается частота оборотов его вала. Стабилизатором служит «магнитофонная» микросхема DA1 фирмы Panasonic. С её помощью на зажимах двигателя M1 поддерживаются постоянные параметры, которые практически не зависят от колебаний температуры и напряжения питания;
з) дроссели L7, L2 и конденсаторы C7, С2фильтруют излучаемые двигателем радиопомехи. С той же целью двигатель помещается в заземлённый экранированный корпус;
Рис. 2.78. Схемы подключения электродвигателей через транзисторные ключи
(продолжение):
и) вибромотор M1 является источником мощных электромагнитных и радиочастотных помех. Элементы L/, L2, C1 служат фильтрами. Резистор R2 ограничивает пусковой ток через два приоткрытом транзисторе VT1 Диоды VD1, УА2срезаютвершиныимпульсныхпомех;
к) элементы VD1, C1 и VD2, &2фильтруют помехи по питанию, которые генерирует двигатель M1 в направлении к MK. Частоту оборотов вала двигателя можно плавно регулировать через канал ШИМ MK, при этом отдельный ФНЧ не требуется, поскольку двигатель имеет большую инерцию и сам сглаживает проходящие через него ВЧ-импульсы тока;
л) применение ключа на полевом транзисторе VT1 повышает КПД по сравнению с ключом на биполярном транзисторе, ввиду более низкого сопротивления «сток — исток». Резистор R1 ограничивает амплитуду наводок, которые могут «просачиваться» от работающего двигателя M1 во внутренние цепи MK через ёмкость «затвор — сток» транзистора VT1;
м) транзистор VT2 является мощным силовым ключом, который подаёт питание на двигатель ML а транзистор VT1 — демпфером, который быстро тормозит вращение вала после выключения. Резистор R1 снижает нагрузку на выход MK при заряде ёмкостей затворов полевых транзисторов VT1, VT2. Резистор Я2отключаетдвигатель M1 при рестарте MK;
н) ключ на транзисторах VT1, VT2 собран по схеме Дарлингтона и имеет большое усиление. Для регулирования скорости вращения вала двигателя M1 может применяться метод ШИМ или фазо-импульсное управление. Система не имеет обратной связи, поэтому при снижении скорости вращения из-за внешнего торможения будет уменьшаться рабочая мощность на валу;
Рис. 2.78. Схемы подключения электродвигателей через транзисторные ключи
(продолжение):
м) встраивание MK в уже существующий тракт регулирования скорости вращения вала двигателя Ml. В этот тракт входят все элементы схемы, кроме резистора R2. Резистором R4 выставляется «грубая» частота вращения. Точная подстройка осуществляется импульсами с выхода MK. Возможна организация обратной связи, когда МК следит за каким-либо параметром и динамично подстраивает скорость вращения в зависимости от напряжения питания или температуры;
о) скорость вращения вала двигателя M1 определяется скважностью импульсов в канале ШИМ, генерируемых с нижнего выхода MK. Основным коммутирующим ключом служит транзистор VT2.2, остальные транзисторные ключи участвуют в быстрой остановке двигателя M1 по сигналу ВЫСОКОГО уровня с верхнего выхода MK;
п) плавное регулирование частоты оборотов вала двигателя M1 производится резистором R8. ОУ ТШ служит стабилизатором напряжения с двойной обратной связью через элементы R1, R8, C2 и R9, R10, C1. Комбинацией уровней с трёх выходов MK (ЦАП) можно ступенчато изменять скорость вращения вала двигателя M1 (точный подбор резисторами R2…R4). Линии MK могут переводиться в режим входа без « pull-up» резистора для увеличения числа «ступенек» ЦАП;
Рис. 2.78. Схемы подключения электродвигателей через транзисторные ключи (окончание):
p) фазо-импульсное управление двигателем переменного тока M1. Чем большее время за период сетевого напряжения открыт транзистор VT1, тем быстрее вращается вал двигателя;
с) включение мощного двигателя переменного тока Ml производится через оптотиристор KS7, который обеспечивает гальваническую развязку от цепей MK;
т) аналогично Рис. 2.78, п, но с одним кольцом обратной связи через элементы C7, R6, R8. Резистор R4 регулирует частоту вращения вала двигателя Ml плавно, а MK — дискретно.
Рис. 2.79. Мостовые схемы подключения электродвигателей к MK (начало):
а) направление вращения вала двигателя Ml изменяется мостовой «механической» схемой на двух группах контактов реле KL1, K1.2. Частота переключения контактов реле должна быть низкой, чтобы быстро не выработался ресурс. Дроссели L7, L2 снижают коммутационные токи при переключении реле и, соответственно, уровень излучаемых электромагнитных помех;
Рис. 2.79. Мостовые схемы подключения электродвигателей к MK (продолжение):
б) при ВЫСОКОМ уровне на верхнем и НИЗКОМ уровне на нижнем выходе МК транзисторы К77…к ТЗ открываются, а транзисторы КГ4…КГ6закрываются,инаоборот. Когда полярность питания двигателя Ml изменяется на противоположную, то его ротор вращается в обратную сторону. Сигналы с двух выходов МК должны быть противофазными, но с небольшой паузой НИЗКОГО уровня между импульсами, чтобы закрыть оба плеча (устранение сквозных токов). Диоды VD1..VD4уменьшают выбросы напряжения, тем самым защищая транзисторы от пробоя;
в) аналогично Рис. 2.79, б, но с другими номиналами элементов, а также с аппаратной защитой от одновременного открывания транзисторов одного плеча при помощи диодов VD3, VD4. Диоды VD1, КД2повышают помехоустойчивость при большом расстоянии до MK. Конденсатор С/ снижает «искровые» импульсные радиопомехи, генерируемые двигателем Ml;
Рис. 2.79. Мостовые схемы подключения электродвигателей к MK (продолжение):
г) аналогично Рис. 2.79, б, но с отсутствием «запирающих» резисторов в базовых цепях транзисторов VT2, VT4. Расчётнато,чтообмоткадвигателяЛ//достаточнонизкоомная,следователо, при рестарте МК внешние помехи на «висящих в воздухе» базах транзисторов VT1 VT2, VT4, VT6 не смогут открыть их коллекторные переходы;
д) аналогично Рис. 2.79, б, но с максимальным упрощением схемы. Рекомендуется для устройств, выполняющих второстепенные функции. Напряжение питания +Еи должно соответствовать рабочему напряжению двигателя M1\
е) в отличие от предыдущих схем, транзисторы VT1…VT4 включаются по схеме с общим эмиттером и управляются ВЫСОКИМ/НИЗКИМ уровнем непосредственно с выходов MK. Двигатель M1 должен быть рассчитан на рабочее напряжение 3…3.5 В. Диоды VD1… VD4 уменьшают выбросы напряжения. Фильтр LL C1 снижает импульсные помехи по питанию от двигателя M1, которые могут приводить к сбоям в работе MK. Встречающиеся замены деталей: VT1 VT3- KT972; VT2, VT4- KT973; VD1…VD4- КД522Б, Rx = 3.3 кОм; R2 = 3.3 кОм;
ж) мостовая схема на четырёх управляющих транзисторах VT1 VT2, VT4, VT5 структуры р—п—р. Подстроечным резистором R4 регулируется напряжение на двигателе Ml, а значит, и частота оборотов сразу для двух направлений вращения ротора;
Рис. 2.79. Мостовые схемы подключения электродвигателей к MK (окончание):
з) мостовая схема для управления мощным двигателем Ml (24 В, 30 А). Смена полярности напряжения на двигателе производится противофазными уровнями на средних выходах MK, а скорость вращения — методом ШИМ на верхнем и нижнем выходах MK;
и) транзисторы VT2, VT5 подают питание на мостовую схему управления двигателем Ml. Их запараллеливание позволяет подключить к диоду VD1 ещё одну такую же схему.
Источник: Рюмик, С. М., 1000 и одна микроконтроллерная схема. Вып. 2 / С. М. Рюмик. — М.:ЛР Додэка-ХХ1, 2011. — 400 с.: ил. + CD. — (Серия «Программируемые системы»).