Перейти к содержимому

Как управлять двигателем постоянного тока

  • автор:

Безопасное управление двигателем постоянного тока

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

Все статьи по открытому проекту MC50 здесь:

  • Схема и плата контроллера
  • Первые шаги по программированию контроллера
  • Развёртывание промежуточного программного обеспечения
  • Отладка взаимодействия с интернетом
  • 6-шаговая коммутация BLDC моторов
  • Разработка сервопривода с BLDC мотором
  • Разработка робастного управления сервоприводом

Во-первых, сопротивление шунтов в измерителях тока фаз было уменьшено до 1 мОм.
Во-вторых, MOSFET транзисторы CSD18540Q5BT в 3-фазном мосте были заменены на более продвинутые и недавно выпущенные STL320N4LF8. Эти транзисторы отличает уникально низкое сопротивление открытого канала — всего 0.8 мОм, при таком же быстродействии и даже выше чем у CSD18540Q5BT. Благодаря этому на мощностях до 400 Вт и чуть выше сервоприводу не нужен вентилятор. А когда мощность требует вентилятора, то его можно подключить между оставшейся свободной фазой W и клеммой GND.

В текущей версии программы мотор можно включать и выключать в ручном режиме с платы используя ручной энкодер, из управляющей программы Freemaster и по интерфейсу CAN. Для управления скоростью вращения коллекторные двигатели вместо 3-фазных датчиков холла оборудуются 2-фазными датчиками с квадратурным сигналом.

В программе при выборе типа приложения DC traction motor будет проводится измерение скорости с квадратурного энкодера подключённого к линиям W и V. Сам мотор подключается к клеммам U и V. В данном случае получается полный мост и мотор можно вращать в обоих направлениях.

Осторожно с модуляцией!

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

Но есть другая проблема — мёртвое время. Мёртвое время обеспечиваемое микросхемой TMC6200 слишком мало для мощных MOSFET применяемых на плате. Дополнительное мёртвое время создаётся в ШИМ генераторах микроконтроллера. Это стандартная фича. Нестандартно здесь будет обеспечить переход из ШИМ в статические сигналы и обратно.
Когда плавно повышаем ШИМ до 100%, то в конце процесса нужно выставить статический сигнал, чтобы в одном плече все время был открыт верхний транзистор, а в другом плече нижний.

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

Диаграмма описывающая корректную вставку мёртвого времени при обычной ШИМ модуляции. Но на ней не видно что будет если модуляцию отключить.

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

Выглядит это так, на примере одной фазы:

/*----------------------------------------------------------------------------------------------------- Установка состояния на выходе фазы U 3-фазного инвертера val = 0 - нижний ключ постоянно открыт, верхний постоянно закрыт val = 100 - нижний ключ постоянно закрыт, верхний постоянно открыт val = -1 - нижний ключ постоянно закрыт, верхний постоянно закрыт 0 < val < 100 - На выходе сигнал ШИМ с коэфициентом заполнения равным val в процентах Установка ШИМ буфферизирована, и вступит в действие после окончания текущего цикла ШИМ -----------------------------------------------------------------------------------------------------*/ void Phase_U_mode(int32_t val) < if (val >= 100) gpt0_out_mode = FL_PHASE_PULL_UP; else if (val == 0) gpt0_out_mode = FL_PHASE_PULL_DOWN; else if (val < 0) gpt0_out_mode = FL_PHASE_Z_STATE; else < val =(gpt_pwm_cycle_set * (100 - val)) / 100; // Не даем прекратиться PWM и не даем импульсу стать слишком коротким if (val < MIN_PWM_COMPARE_VAL) < val = MIN_PWM_COMPARE_VAL; >else if ((gpt_pwm_cycle_set - val) < MIN_PWM_COMPARE_VAL) < val = gpt_pwm_cycle_set - MIN_PWM_COMPARE_VAL; >R_GPTA0->GTCCRC = val; gpt0_out_mode = FL_PHASE_PWM_ON; > > /*----------------------------------------------------------------------------------------------------- Функция вызываемая из обработчика прерывания для приведения выходов к заданному задачей управления состоянию \param mode -----------------------------------------------------------------------------------------------------*/ void Set_output_U(uint8_t mode) < uint32_t tmp_H = R_PFS->P415PFS; uint32_t tmp_L = R_PFS->P414PFS; switch (mode) < case FL_PHASE_PULL_UP : // Для фазы U устанавливаем P415 (UH) в 1, P414 (UL) в 0 tmp_H = tmp_H & ~(LSHIFT(0x1F,24) | BIT(16)); tmp_H = tmp_H | BIT(2) | BIT(0); tmp_L = tmp_L & ~(LSHIFT(0x1F,24) | BIT(16) | BIT(0)); tmp_L = tmp_L | BIT(2); R_PFS->P414PFS = tmp_L; // Записываем состояние выхода в порт данного выхода __DSB(); // Оператор Data Synchronization Barrier (DSB) необходим для гарантии установления состояния выхода // до того как начнет выполняться следующая инструкция R_PFS->P415PFS = tmp_H; __DSB(); break; case FL_PHASE_PULL_DOWN : // Для фазы U устанавливаем P415 (UH) в 0, P414 (UL) в 1 tmp_H = tmp_H & ~(LSHIFT(0x1F,24) | BIT(16) | BIT(0)); tmp_H = tmp_H | BIT(2); tmp_L = tmp_L & ~(LSHIFT(0x1F,24) | BIT(16)); tmp_L = tmp_L | BIT(2) | BIT(0); R_PFS->P415PFS = tmp_H; __DSB(); R_PFS->P414PFS = tmp_L; __DSB(); break; case FL_PHASE_Z_STATE : // Для фазы U устанавливаем P415 (UH) в 0, P414 (UL) в 0 tmp_H = tmp_H & ~(LSHIFT(0x1F,24) | BIT(16) | BIT(0)); tmp_H = tmp_H | BIT(2); tmp_L = tmp_L & ~(LSHIFT(0x1F,24) | BIT(16) | BIT(0)); tmp_L = tmp_L | BIT(2); R_PFS->P414PFS = tmp_L; __DSB(); R_PFS->P415PFS = tmp_H; __DSB(); break; case FL_PHASE_PWM_ON : // Для фазы U переключаем P415 (UH) и P414 (UL) в режим управления периферией // Перепрограммирвать режим портов только если он не был уже в заданном состоянии if (((tmp_H >> 24) & 0x1F) != PSEL_03) < // Если выход H был установлен в 1, то предварительно установить его в 0 if (tmp_H & BIT(0)) < tmp_H = tmp_H & ~(LSHIFT(0x1F,24) | BIT(16) | BIT(0)); tmp_H = tmp_H | BIT(2); R_PFS->P415PFS = tmp_H; __DSB(); > // Если выход L был установлен в 1, то предварительно установить его в 0 if (tmp_L & BIT(0)) < tmp_L = tmp_L & ~(LSHIFT(0x1F,24) | BIT(16) | BIT(0)); tmp_L = tmp_L | BIT(2); R_PFS->P414PFS = tmp_L; __DSB(); > tmp_H = tmp_H & ~(LSHIFT(0x1F,24) | BIT(0)); tmp_H = tmp_H | BIT(16) | BIT(2) | LSHIFT(PSEL_03,24); tmp_L = tmp_L & ~(LSHIFT(0x1F,24) | BIT(0)); tmp_L = tmp_L | BIT(16) | BIT(2) | LSHIFT(PSEL_03,24); R_PFS->P414PFS = tmp_L; __DSB(); R_PFS->P415PFS = tmp_H; __DSB(); > break; > > 

Осторожно с разгоном!

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

Старт вращения ротора без стадии разгона. Заполнение ШИМ = 50%

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

Старт вращения ротора без стадии разгона. Заполнение ШИМ = 60%

Отсюда следует, что запускать мотор постоянного тока следует плавно. Причём даже увеличивая по шагам заполнение ШИМ всего на 1%, можно наблюдать импульсы тока на моторе величиной около 1 А. Поэтому график мощности потребления и тока, показанный ниже, имеет странную пилообразную структуру.

Старт вращения ротора со стадией разгона. Заполнение ШИМ в конце = 100%

Осторожно с торможением!

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

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

График торможения с уровня ШИМ 40% до 0 за 0.7 сек

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

Никогда не забываем о температуре.

На итальянском моторе может быть такая надпись: SERVIZIO S3 25%. На других моторах символы S3 могут встретиться также. Это говорит о том, что мотор не предназначен для постоянной работы. Если его держать с номинальной скоростью в течении, скажем, часа, то он просто сгорит. Поэтому на мотор тоже надо ставить термосенсор. Можно, конечно, следить в программе сколько там процентов времени проработал мотор, но это скорее всего приведёт к недобору ресурса по температуре и более частым отказам в исполнении команд. В нашем сервоконтроллере есть специальный вход для подключения NTC резистора 10 КОм.

Далее можно столкнуться с перегревом самого сервоконтроллера. На плате установлен измерительный термистор рядом с силовыми транзисторами. Кроме этого термосенсор интегрирован в самом микроконтроллере и присутствует защита от перегрева в микросхеме драйвера TMC6200. Следует помнить, что длительный перегрев хуже всего влияет на электролитические конденсаторы, которые быстро теряют свой ресурс при 100 и более град.
Установленные конденсаторы типа EEE-FT1H331AP имеют ресурс 2000 часов при 105 град. С. Несмотря на то, что наш двигатель называется двигателем постоянного тока, его ток потребления при постоянном напряжении все равно импульсный. И амплитуда импульсов достигает десятка ампер. Поэтому импульсная нагрузка на конденсаторы не намного меньше чем в 6-шаговом управлении BLDC моторами. Т.е. конденсаторы греются не только через плату от транзисторов и шунтов, но и сами по себе. В программе реализовано управление вентилятором с клеммы W и задаётся таймаут отключения вентилятора после остановки мотора.

Положение термистора на плате

Все исходные тексты проекта находятся здесь. В проекте сохранена также функциональность всех предыдущих демонстраций серво управления BLDC и все промежуточное программное обеспечение включая RTOS и сетевые стеки. Переключение между управлением BLDC и DC моторами производится в энергонезависимых настройках. Кроме того добавлено дистанционное управление по CAN с одного сервоконтроллера другим сервоконтроллером.

  • Севопривод
  • DC motor control
  • Renesas Synergy
  • azure rtos
  • DC motor
  • Разработка робототехники
  • Программирование микроконтроллеров
  • Схемотехника
  • Производство и разработка электроники
  • DIY или Сделай сам

Управление двигателями постоянного тока. Часть 1

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

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

Электродвигатели являются, наверное, одним из самых массовых изделий электротехники. Как говорит нам всезнающая Википедия, электрический двигатель – электрическая машина (электромеханический преобразователь), в которой электрическая энергия преобразуется в механическую. Началом его истории можно считать открытие, которое сделал Майкл Фарадей в далеком 1821 году, установив возможность вращения проводника в магнитном поле. Но первый более-менее практический электродвигатель с вращающимся ротором ждал своего изобретения до 1834 года. Его во время работы в Кёнигсберге изобрел Мориц Герман фон Якоби, более известный у нас как Борис Семенович. Электродвигатели характеризуют два основных параметра – это скорость вращения вала (ротора) и момент вращения, развиваемый на валу. В общем плане оба этих параметра зависят от напряжения, подаваемого на двигатель и тока в его обмотках. В настоящее время имеется достаточно много разновидностей электродвигателей, и поскольку, как заметил наш известный литературный персонаж Козьма Прутков, нельзя объять необъятное, остановимся на рассмотрении особенностей управления двигателями постоянного тока (далее электродвигателями).

К двигателям постоянного тока относятся два типа – это привычные для нас коллекторные двигатели и бесколлекторные (шаговые) двигатели. В первых переменное магнитное поле, обеспечивающее вращение вала двигателя, образуется обмотками ротора, которые запитываются через щеточный коммутатор – коллектор. Оно и взаимодействует с постоянным магнитным полем статора, вращая ротор. Для работы таких двигателей внешние коммутаторы не требуются, их роль выполняет коллектор. Статор может быть изготовлен как из системы постоянных магнитов, так и из электромагнитов. Во втором типе электродвигателей обмотки образуют неподвижную часть двигателя (статор), а ротор сделан из постоянных магнитов. Здесь переменное магнитное поле образуется путем коммутации обмоток статора, которая выполняется внешней управляющей схемой. Шаговые двигатели («stepper motor» в английском написании) значительно дороже коллекторных. Это достаточно сложные устройства со своими специфическими особенностями. Их полное описание требует отдельной публикации и выходит за рамки данной статьи. Для получения более полной информации по двигателям этого типа и их схемам управления можно обратиться, например, к [1].

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

Управление двигателями постоянного тока Управление двигателями постоянного тока
а) б)

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

Схема примитивная, но кажется очень удачной и, главное, недорогой. Посмотрим на нее с точки зрения инженера. Во-первых, можно ли ограничить момент вращения или ток двигателя? Это решается установкой дополнительного резистора. На Рисунке 2 он обозначен как RLIM. Его расчет имеется в спецификации, но он ухудшает характеристику схемы как стабилизатора напряжения (об этом будет ниже). Во-вторых, какой из вариантов управления скоростью лучше? Вариант на Рисунке 2а дает удобную линейную характеристику регулирования, поэтому он и более популярен. Вариант на Рисунке 2б имеет нелинейную характеристику. Но в первом случае при нарушении контакта в переменном резисторе мы получаем максимальную скорость, а во втором – минимальную. Что выбрать – зависит от конкретного применения. Теперь рассмотрим один пример для двигателя с типовыми параметрами: рабочее напряжение 12 В; максимальный рабочий ток 1 А. ИМС LM317, в зависимости от суффиксов, имеет максимальный выходной ток от 0.5 А до 1.5 А (см. спецификацию [2]; имеются аналогичные ИМС и с бóльшим током) и развитую защиту (от перегрузки и перегрева). С этой точки зрения для нашей задачи она подходит идеально. Проблемы скрываются, как всегда, в мелочах. Если двигатель будет выведен на максимальную мощность, что для нашего применения весьма реально, то на ИМС, даже при минимально допустимой разнице между входным напряжением VIN и выходным VOUT, равной 3 В, будет рассеиваться мощность не менее

Таким образом, нужен радиатор. Опять вопрос – на какую рассеиваемую мощность? На 3 Вт? А вот и нет. Если не полениться и рассчитать график нагрузки ИМС в зависимости от выходного напряжения (это легко выполнить в Excel), то мы получаем, что при наших условиях максимальная мощность на ИМС будет рассеиваться не при максимальном выходном напряжении регулятора, а при выходном напряжении равном 7.5 В (см. Рисунок 3), и она составит почти 5.0 Вт!

Рисунок 3. График зависимости мощности, рассеиваемой на ИМС регулятора, от выходного напряжения.

Как видим, получается что-то уже не дешевое, но очень громоздкое. Так что такой подход годится только для маломощных двигателей с рабочим током не более 0.25 А. В этом случае мощность на регулирующей ИМС будет на уровне 1.2 Вт, что уже будет приемлемо.

Выход из положения – использовать для управления метод широтно-импульсной модуляции (ШИМ). Он, действительно, самый распространенный. Его суть – подача на двигатель промодулированных по длительности однополярных прямоугольных импульсов. Согласно теории сигналов, в структуре такой последовательности имеется постоянная составляющая, пропорциональная отношению τ/T, где: τ – длительность импульса, а T – период последовательности. Вот она-то и управляет скоростью двигателя, который выделяет ее как интегратор в этой системе. Поскольку выходной каскад регулятора на основе ШИМ работает в ключевом режиме он, как правило, не нуждается в больших радиаторах для отвода тепла, даже при относительно больших мощностях двигателя, и КПД такого регулятора несравненно выше предыдущего. В ряде случаев можно использовать понижающие или повышающие DC/DC-преобразователи, но они имеют ряд ограничений, например, по глубине регулировки выходного напряжения и минимальной нагрузке. Поэтому, как правило, чаще встречаются иные решения. «Классическое» схемное решение такого регулятора представлено на Рисунке 4 [3]. Оно использовано в качестве дросселя (регулятора) в профессиональной модели железной дороги.

Рисунок 4. «Классическая» схема управления коллекторным двигателем на основе ШИМ (согласно оригиналу [3]).

На первом операционном усилителе собран генератор, на втором компаратор. На вход компаратора подается сигнал с конденсатора C1, а путем регулирования порога срабатывания формируется уже сигнал прямоугольной формы с нужным отношением τ/T (Рисунок 5).

Управление двигателями постоянного тока
Рисунок 5. Диаграмма управления коллекторным двигателем на основе ШИМ. Верхняя трасса – напряжение на конденсаторе С1; средняя (пересекает верхнюю) – сигнал управления (напряжение на движке резистора RV2); нижняя – напряжение на двигателе.

Диапазон регулировки устанавливается подстроечными резисторами RV1 (быстрее) и RV3 (медленнее), а сама регулировка скорости осуществляется резистором RV2 (скорость). Обращаю внимание читателей, что в Интернете на русскоязычных форумах гуляет похожая схема с ошибками в номиналах делителя, задающего порог компаратора. Управление непосредственно двигателем осуществляется через ключ на мощном полевом транзисторе типа BUZ11 [4]. Особенности этого транзистора типа MOSFET – большой рабочий ток (30 А постоянного, и до 120 А импульсного), сверхмалое сопротивление открытого канала (40 мОм) и, следовательно, минимальная мощность потерь в открытом состоянии.

На что нужно в первую очередь обращать внимание при использовании таких схем? Во-первых, это исполнение цепи управления. Здесь в схеме (Рисунок 4) есть небольшая недоработка. Если со временем возникнут проблемы с подвижным контактом переменного резистора, мы получим полный почти мгновенный разгон двигателя. Это может вывести из строя наше устройство. Какое противоядие? Установить добавочный достаточно высокоомный резистор, например, 300 кОм с вывода 5 ИМС на общий провод. В этом случае при отказе регулятора двигатель будет остановлен.

Еще одна проблема таких регуляторов – это выходной каскад или драйвер двигателя. В подобных схемах он может быть выполнен как на полевых транзисторах, так и на биполярных; последние несравненно дешевле. Но и в первом и во втором варианте необходимо учитывать некоторые важные моменты. Для управления полевым транзистором типа MOSFET нужно обеспечить заряд и разряд его входной емкости, а она может составлять тысячи пикофарад. Если не использовать последовательный с затвором резистор (R6 на Рисунке 4) или его номинал будет слишком мал, то на относительно высоких частотах управления операционный усилитель может выйти из строя. Если же использовать R6 большого номинала, то транзистор будет дольше находиться в активной зоне своей передаточной характеристики и, следовательно, имеем рост потерь и нагрев ключа.

Еще одно замечание к схеме на Рисунке 4. Использование дополнительного диода D2 лишено смысла, так как в структуре транзистора BUZ11 уже имеется свой внутренний защитный быстродействующий диод с лучшими характеристиками, чем предлагаемый. Диод D1 также явно лишний, транзистор BUZ11 допускает подачу напряжения затвор-исток ± 20 В, да и переполюсовка в цепи управления при однополярном питании, как и напряжение выше 12 В, невозможны.

Если использовать биполярный транзистор, то возникает проблема формирования достаточного по величине базового тока. Как известно, для насыщения ключа на биполярном транзисторе ток его базы должен быть, по крайней мере, не менее 0.06 от тока нагрузки. Понятно, что операционный усилитель такой ток может не обеспечить. С этой целью в аналогичном, по сути, регуляторе, который используется, например, в популярном мини-гравере PT-5201 компании Pro’sKit, применен транзистор TIP125, представляющий собой схему Дарлингтона. Тут интересный момент. Эти мини-граверы иногда выходят из строя, но не из-за перегрева транзистора, как можно было бы предположить, а из-за перегрева ИМС LM358 (максимальная рабочая температура +70 °С) выходным транзистором (максимально допустимая температура +150 °С). В изделиях, которыми пользовался автор статьи, он был вплотную прижат к корпусу ИМС и посажен на клей, что недопустимо нагревало ИМС и почти блокировало теплоотвод. Если вам попалась такое исполнение, то лучше «отклеить» транзистор от ИМС и максимально отогнуть. За это know-how автор статьи был премирован компанией Pro’sKit набором инструментов. Как видите все нужно решать в комплексе – смотреть не только на схемотехнику, но и внимательно относится к конструкции регулятора в целом.

Есть еще несколько интересных схем более простых ШИМ-регуляторов. Например, две схемы на одиночном операционном усилителе с драйвером опубликованы в [5] (Одна из них приведена на Рисунке 6а). Есть схемы и на базе популярного таймера серии 555 [6] (Рисунок 6б). Эти дешевые решения не должны вводить вас в заблуждение своей кажущейся простотой. Вспомним А.С. Пушкина: «Не гонялся бы ты, поп, за дешевизной». Или французов: «За каждое удовольствие нужно платить». Обе эти схемы формируют суррогатный сигнал ШИМ с изменением опорной частоты. Так схемы на ОУ из [5] меняют частоту управления во время регулирования от 170 Гц до 500 Гц, а схема на таймере – от 150 Гц до 1000 Гц, и ее диапазон регулировки (верхний диапазон) ограничен скважностью 9.5. Для некоторых применений это может быть недопустимо, так как на больших частотах двигатель может и не заработать, или не дать нужный момент вращения. Это происходит из-за того, что ток в обмотке двигателя, которая представляет собой индуктивность, устанавливается не мгновенно, а нарастает и спадает по экспоненте. Более корректные схемы на базе таймера и одиночного ОУ приведены на Рисунке 7.

Аналогичные по структуре регуляторы можно построить и на цифровых логических элементах, но они имеют малую нагрузочную способность и требуют отдельного источника питания, поэтому в данной статье не рассматриваются. Применение же таймера 555 интересно тем, что частота генератора, выполненного на его базе, практически не зависит от напряжения питания. Кроме того, большинство ныне выпускаемых зарубежных аналогов, выполненных по биполярной технологии, допускает выходной ток до 200 мА и более. То есть, они могут легко справиться и с емкостью затвора MOSFET и с мощными ключами на биполярных транзисторах. Близкий к таймеру 555 советско-российский аналог – это ИМС (КР)1006ВИ1. Максимальный выходной ток для КР1006ВИ1 и КМОП-версий таймера составляет 100 мА.

Литература:

  1. Рентюк В. «Шаговые двигатели и особенности их применения». Компоненты и технологии, №10, 2013
  2. LM117/LM317A/LM317-N Three-Terminal Adjustable Regulator, Texas Instruments Inc., Jan. 2014
  3. talkingelectronics.com/EMR-2/SimplePWMThrottle.pdf
  4. BUZ11 N-Channel Power MOSFET 50V, 30A, 40 mΩ, Fairchild Semiconductor Corp., 2001
  5. Две схемы ШИМ регулятора на 12 вольт.
  6. ШИМ регулятор оборотов двигателя 12 вольт на таймере NE555.

Как управлять мотором постоянного тока

Для начала рассмотрим повнимательней обычный двигатель постоянного тока. Любой двигатель имеет две основные части — ротор и статор. В коллекторном двигателе статор — неподвижная часть, состоит из постоянных магнитов (или в более мощных двигателях электромагнитов). Ротор (якорь) — вращается, совмещён с валом двигателя и состоит из многих катушек (как минимум трех). Коллектор (щёточно-коллекторный узел) отвечает за переключение выводов катушек ротора. Ток в таком двигателе подводится к катушкам ротора через скользящие контакты (или щётки). В один момент времени подключена только одна катушка, она и создаёт момент вращения двигателя за счет проходящего тока.

С точки зрения базовых элементов схемотехники любой двигатель можно представить в виде следующей эквивалентной схемы:

Когда мотор подключён источнику постоянного тока и еще не начал вращаться, то он представляет из себя обычное сопротивление. То есть через него течет ток согласно закону Ома и сопротивлению его обмотки. Преобладает компонента R. Индуктивность начинает влиять когда напряжение не постоянное, например, если мотор питается от ШИМ (PWM) сигнала.

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

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

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

В дальнейшем нам понадобятся следующие выводы:

  • пока мотор не начал вращаться он является сопротивлением
  • если приложить к мотору изменяющееся напряжение (например PWM), то индуктивность будет иметь большое влияние, она будет сопротивляться изменению тока через мотор
  • когда мотор вращается, то он является генератором, и за счет этого потребляемый ток снижается (итоговое напряжение равно V — Vbemf).

Как подключить мотор к МК

В данной статье мы будем разбираться как управлять с помощью МК скоростью и направлением вращения обычным двигателем постоянного тока. Для того чтобы коллекторный мотор постоянного тока начал вращаться, достаточно подать на него определённое напряжение. Полярность данного напряжения будет определять направление его вращения, а величина напряжения — скорость вращения. Напряжение нельзя менять безгранично. Каждый мотор рассчитан на определённый диапазон напряжений. При повышении напряжения ток через мотор будет расти, и он начнётся перегреваться и может сгореть. На следующем графике некоего мотора хорошо видна взаимосвязь его основных показателей.
Максимальной мощности (Torque — крутящий момент) мотор достигает при максимальном токе. И зависимость тока и момента — линейная. Максимальной скорости двигатель достигает при отсутствии нагрузки (на холостых оборотах), при увеличении нагрузки скорость вращения падает. Номинальное рабочее напряжение указано в паспорте на двигатель и именно для него и приведён и этот график. Если же снижать напряжение, то скорость вращения, и все остальные показатели будут тоже падать. Как правило, ниже 30-50% от номинального напряжения мотор перестанет вращаться. Если же мотор не сможет прокрутить вал (его заклинило), то по сути станет сопротивлением и потребляемый ток достигает максимальной величины, зависящей от внутреннего сопротивления его обмоток. Обычный мотор не рассчитан на работу в таком режиме и может сгореть. Посмотрим как меняется ток от нагрузки на реальном моторе R380-2580.
Мы видим, что рабочее напряжение данного мотора — 12В, потребляемый ток под нагрузкой — 1.5А. Ток останова мотора вырастает до 8А, а в холостом же вращении, потребляемый ток равен всего 0.8А. Как мы знаем, порт микроконтроллера не может выдать ток больше 50мА, и напряжение питания 12В для него слишком большое. Для управления моторами нам понадобится электронный ключ — транзистор, возьмём обычный биполярный транзистор NPN и подключим его по следующей неправильной схеме.

Чтобы мотор начал вращаться, на базу транзистора необходимо подать небольшой ток, далее транзистор откроется и сможет пропустить через себя гораздо больший ток и напряжение — мотор будет вращаться. Стоит отметить что, если мы соберём такую схему, то транзистор очень скоро, если не сразу, выйдет из строя. Чтобы этого не произошло, его необходимо защитить. Как мы уже знаем одна из компонент мотора — индуктивность — сопротивляется изменению тока. Поэтому, когда мы закроем транзистор, чтобы выключить мотор, то сопротивление транзистора резко увеличится и он перестанет пропускать через себя ток. Однако индуктивность будет сопротивляться этому, и для того, чтобы удержать ток на прежнем уровне, по закону Ома, напряжение на коллекторе транзистора начнёт резко повышаться (может достигнуть даже 1000В, правда очень на малое время) и транзистор сгорит. Чтобы этого не произошло необходимо параллельно обмоткам мотора поставить диод, который откроет путь для обратного напряжения и замкнёт его на обмотке мотора, тем самым защитит транзистор. Также, все постоянные моторы имеют еще одну неприятность — при вращении механический контакт в коллекторе не идеален, щётки искрят в процессе работы, создавая помехи, что может привести к сбою микроконтроллера. Чтобы снизить эти помехи, необходимо использовать конденсаторы небольшой ёмкости, подключенный параллельно выводам мотора (как можно ближе к самому мотору). Вот окончательная правильная схема (диод может быть не обязательно Шоттки, но он предпочтителен).

Биполярные транзисторы в открытом состоянии они ведут себя как диоды (на них падает около 0.7 В). А это, в свою очередь, вызывает их большой нагрев на больших токах и снижает КПД схемы управления мотором. Поэтому лучше управлять моторами с помощью полевых (MOSFET) транзисторов. В настоящее время они достаточно распространены и имеют невысокую цену. Их низкое сопротивление в открытом состоянии позволяет коммутировать очень высокие токи с минимальными потерями. Однако и у них есть свои недостатки. Так как MOSFET транзисторы управляются напряжением, а не током (и обычно оно составляет 10В), то нужно или выбирать специальные логические MOSFET, которые могут управляться низким напряжением — 1.8 .. 2.5В или использовать специальные схемы накачки напряжения (драйверы полевых транзисторов). Как выбирать MOSFET под вашу схему мы рассмотрим в других статьях, на конкретных приборах. Теперь, подавая на выход микроконтроллера логическую единицу, мы заставим мотор вращаться, а логический ноль — остановится. Однако вращаться он будет с постоянной скоростью и только в одну сторону. Хотелось бы иметь возможность менять направление вращения мотора, а также его скорость. Рассмотрим, как этого можно добиться с помощью микроконтроллера.

H-Мост — меняем направление вращения мотора

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

В схеме H-моста в качестве нижних транзисторов всегда используются N-канальные, а вот верхние могут быть как N-канальные, так и P-канальные. P-канальными транзисторами в верхнем ключе проще управлять, достаточно сделать схему смещения уровня напряжения на затворе. Для этого можно использовать маломощный N-канальный полевой или биполярный транзистор. Нижним транзистором можно управлять напрямую от МК, если выбрать специальный логический полевой транзистор. Если в вашей схеме будет использоваться высоковольтный мотор постоянного тока (больше 24В) или мощный мотор с токами более 10А, то лучше использовать специальные микросхемы — драйверы MOSFET транзисторов. Драйверы управляются, как правило, сигналами микроконтроллера от 2 до 5В, а на выходе создают напряжение необходимое для полного открытия MOSFET транзисторов — обычно это 10-15В. Также драйверы обеспечивают большой импульсный ток необходимый для ускорения открытия полевых транзисторов. С помощью драйверов легко организовать управление верхним N-канальным транзистором. Очень хорошим драйвером является микросхема L6387D от компании ST. Данная микросхема хороша тем, что не требует диода для схемы накачки напряжения. Вот так она подключается для управления H-мостом на 2-х N-канальных транзисторах.
N-канальные полевые транзисторы, стоят дешевле P-канальных, а также имеют меньшее сопротивление в открытом состоянии, что позволяет коммутировать большие токи. Но ими сложнее управлять в верхнем положении. Проблема использования N-канального транзистора в верхнем ключе состоит в том, что для его открытия нужно подать напряжение 10В относительно Истока, а как вы видите на схеме там может быть все напряжение питания мотора, а не 0 вольт. Таким образом, на базу необходимо подать 10В + напряжение питания мотора. Нужна специальная bootstrap схема для повышения напряжения. Обычно, для этих целей используется схема накачки напряжения на конденсаторе и диоде. Однако такая схема работает только, если вы постоянно подзаряжаете конденсатор — открывая, закрывая нижний транзистор (в ШИМ управлении). Для возможности поддерживания верхнего транзистора постоянно открытым нужно еще усложнять схему — добавлять схему внешней подпитки конденсатора. Вот пример схемы управления N-канальными транзисторами без использования микросхем драйверов.

Перейдём к управлению скоростью вращения мотора.

ШИМ сигнал — управляем скоростью вращения мотора

Моторы постоянного тока имеют линейную зависимость скорости вращения от приложенного напряжения. Таким образом, чтобы снизить скорость вращения, надо подать меньше напряжения. Но надо помнить, что с падением напряжения, у мотора падает мощность. Поэтому, на практике, можно управлять скоростью мотора только в пределах 30%-50% от полной скорости вращения мотора. Для управления скоростью мотора без потери мощности, необходима обратная связь от мотора по оборотам вращения, например как в электрическом шуруповерте. Такой режим управления, требует более сложной схемы. Мы же будет рассматривать простой вариант — управление скоростью мотора без обратной связи. Итак, нам необходимо менять напряжение подаваемое на мотор. В нашем распоряжении есть MOSFET транзистор. Мы помним, что наш мотор имеет индуктивность. Индуктивность сопротивляется изменению тока. И если быстро включать и выключать напряжение на моторе, то в момент выключения ток будет продолжать течь благодаря индуктивности. А мотор будет продолжать вращаться по инерции, а не остановится. Но естественно, вращаться он будет медленнее, среднее напряжение на его обмотках будет меньшее. Микроконтроллер, как раз, отлично умеет генерировать импульсный ШИМ (PWM) сигнал. А мотор умеет интегрировать данный сигнал (усреднять) за счёт индуктивности обмоток и инерции ротора. От коэффициента заполнения (скважности) ШИМ сигнала как раз и будет зависеть полученное мотором среднее напряжение, а значит и скорость. Какая же частота ШИМ нужна для лучшего управления мотором? Ответ очень простой, чем больше, тем лучше. Минимальная частота зависит от индуктивности мотора, а также массы ротора и нагрузки на вал мотора. Если смоделировать в электрическом симуляторе (например, PROTEUS) ШИМ управление мотором, то будет видно, что чем больше частота ШИМ, тем более ровный ток протекает через мотор (ripple current — снижается при увеличении частоты). Низкая частота:
высокая частота:

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

Отлично, все просто! Делаем частоту ШИМ побольше, например 1 МГц, и любому мотору хватит. В жизни же, все не так просто. Для понимания всех возможных проблем можно упрощенно принять затвор MOSFET транзистора за идеальный конденсатор. Для того чтобы транзистор полностью открылся, конденсатор необходимо зарядить до 10В (на самом деле меньше). Чем больше ток, который мы можем вкачать в конденсатор, тем быстрее он зарядится, а значит быстрее откроется транзистор. В процессе открытия транзистора, ток и напряжение на нем будут максимальными, и чем больше это время, тем сильнее нагреется транзистор. В datasheet обычно есть такой параметр как Qgate — полный заряд, который надо передать транзистору, чтобы он открылся полностью.

  • Земли управления моторами и микроконтроллера обязательно должны быть разделены, соединение в одной точке тонким проводником, например 0.3мм, как можно ближе к проводам питания всей схемы
  • Драйвера управления MOSFET должны быть как можно ближе к самим MOSFET транзисторам
  • Исполнение управляющей области обязательно двухсторонее, желательно с земляным слоем с одной стороны. При импульсном управлении возникают электромагнитные помехи, чтобы снизить их, земляной слой должен быть рядом.
  • Обязательно наличие конденсатора как можно ближе к зоне прохождения больших импульсных токов. Если такого конденсатора не будет, то напряжение на линии питания будет сильно проседать и микроконтроллер будет постоянно сбрасываться. Также без такого конденсатора, за счёт индуктивности проводов питания, напряжения на линии питания может увеличиться в несколько раз и компоненты выйдут из строя!

ШИМ сигнал в H-мосте

  • когда транзистор открыт, нагрев идёт из-за сопротивления в открытом состоянии Rdson, пропорционально времени открытия транзистора выделяется мощность P = I * I * Rdson
  • когда транзистор закрыт, то ток ЭДС мотора идёт через диод, то есть нагрев идет из-за диода P = I * U diode forward (как правило 1В)
  • когда транзистор переключается из открытого состояния в закрытое, то нагрев пропорционален времени открытия и закрытия транзистора

Управление бесколлекторным двигателем по сигналам обратной ЭДС – понимание процесса

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

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

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

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

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

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

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

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

Запустив трехфазный двигатель в генераторном режиме, постоянным магнитным полем будет наводиться ЭДС на каждую из обмоток двигателя, обмотки двигателя распределены равномерно, на каждую из фаз будет наводиться синусоидальное напряжение и данные сигналы будут смещены между собой на 1/3 периода (рисунок 1). Форма ЭДС меняется по синусоидальному закону, период синусоиды равен 2П(360), поскольку мы имеем дело с электрическими величинами (ЭДС, напряжение, ток) назовем это электрическими градусами и будем измерять период в них.

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

Рисунок 1. Вид сигнала трехфазного источника переменного тока.

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

Рисунок 2. Один электрический период трехфазного двигателя.

На рисунке 2 изображен один электрический период трехфазного двигателя, на данном периоде обозначено 3 произвольных момента, чтобы построить в каждом из этих моментов вектора магнитного поля отложим данный период, 360 электрических градусов, на окружности. Разместим 3 обмотки двигателя сдвинутые на 120 электрических градусов относительно друг друга (рисунок 3).

Рисунок 3. Момент 1. Вектора магнитного поля каждой обмотки (слева) и результирующий вектор магнитного поля (справа).

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

Рисунок 4. Момент 2. Вектора магнитного поля каждой обмотки (слева) и результирующий вектор магнитного поля (справа).

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

Рисунок 5. Вид вращающегося магнитного поля формируемого обмотками на статоре двигателя.

За этим вектором электрического магнитного поля увлекается магнитное поле постоянных магнитов ротора в каждый момент времени (рисунок 6).

Рисунок 6. Постоянный магнит (ротор) следует направлению магнитного поля формируемого статором.

Так работает синхронная машина переменного тока.

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

Постоянное напряжение
Источник постоянного тока имеет только 2 провода «плюс питания» и «минус питания» это значит, что есть возможность подавать напряжение только на две из трех обмоток. Необходимо аппроксимировать рисунок 5 и выделить все моменты, при которых возможно скоммутировать 2 фазы из трех.

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

Электрический период будем отсчитывать от первого вектора.

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

На рисунке 5 видно, что при управлении трехфазным синусоидальным напряжением имеется множество векторов плавно проворачивающихся с течением времени, а при коммутации постоянным током возможно получить вращающееся поле только из 6 векторов, то есть переключение на следующий шаг должно происходить каждые 60 электрических градусов.
Результаты из рисунка 7 сведены в таблицу 1.

Таблица 1. Полученная последовательность коммутаций обмоток двигателя.

Плюс питания Минус питания Обмотка не подключена
W U V
W V U
U V W
U W V
V W U
V U W

Вид получившегося управляющего сигнала в соответствии с таблицей 1 изображен на рисунке 8. Где -V коммутация на минус источника питания (GND), а +V коммутация на плюс источника питания.

Рисунок 8. Вид управляющих сигналов от источника постоянного тока для бесколлекторного двигателя. Желтый – фаза W, синий – U, красный – V.

Однако реальная картина с фаз двигателя будет похожа на синусоидальный сигнал из рисунка 1. У сигнала образуется трапециевидная форма, так как в моменты, когда обмотка двигателя не подключена, постоянные магниты ротора наводят на нее ЭДС (рисунок 9).

Рисунок 9. Вид сигнала с обмоток бесколлекторного двигателя в рабочем режиме.

На осциллографе это выглядит так:

Рисунок 10. Вид окна осциллографа при измерении одной фазы двигателя.

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

а. б.
Рисунок 11. Модель двигателя с одной (a) и с двумя (б) парами полюсов.

Двигатель с двумя парами полюсов имеет 6 обмоток, каждая из обмоток парная, каждая группа из 3 обмоток смещена между собой на 120 электрических градусов. На рисунке 12б. отложен один период для 6 обмоток. Обмотки U1-U2, V1-V2, W1-W2 соединены между собой и в конструкции представляют 3 провода вывода фаз. Для простоты рисунка не отображены соединения, но следует запомнить, что U1-U2, V1-V2, W1-W2 одно и то же.

На рисунке 12, исходя из данных таблицы 1, изображены вектора для одной и двух пар полюсов.

а. б.
Рисунок 12. Схема векторов магнитного поля для двигателя с одной (a) и с двумя (б) парами полюсов.

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

Рисунок 13. Конечные положения ротора при шестиступенчатой коммутации бесколлекторного двигателя с одной парой полюсов.

В двигателях с N парами полюсов необходимо пройти N электрических периодов для полного механического оборота.
Двигатель с двумя парами полюсов будет иметь два магнита с полюсами S и N, и 6 обмоток (рисунок 14). Каждая группа из 3 обмотки смещены друг относительно друга на 120 электрических градусов.

Рисунок 14. Конечные положения ротора при шестиступенчатой коммутации бесколлекторного двигателя с двумя парами полюсов.

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

Управление бесколлекторным двигателем с датчиками Холла
Чтобы коммутировать обмотки в нужные моменты времени необходимо отслеживать положение ротора в электрических градусах. Для этого применяются датчики Холла.
Поскольку имеется 6 состояний вектора магнитного поля необходимо 3 датчика Холла, которые будут представлять один абсолютный датчик положения с трехбитным выходом. Датчики Холла устанавливаются также как обмотки, смещенные между собой на 120 электрических градусов. Это позволяет использовать магниты ротора в качестве воздействующего элемента датчика.

Рисунок 15. Сигналы с датчиков Холла за один электрический оборот двигателя.

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

Таблица 2. Сопоставление сигналов датчиков Холла с коммутацией фаз двигателя.

Положение двигателя HU(1) HV(2) HW(3) U V W
0 0 0 1 0 — +
1 0 1 + — 0
1 0 0 + 0 —
1 1 0 0 + —
0 1 0 — + 0
360/N 0 1 1 — 0 +

При равномерном вращении двигателя с датчиков поступает сигнал смещенный на 1/6 периода, 60 электрических градусов (рисунок 16).

Рисунок 16. Вид сигнала с датчиков Холла.

Управление с помощью сигнала обратной ЭДС
Существуют бесколлекторный двигатели без датчиков положения. Определение положения ротора осуществляется с помощью анализа сигнала ЭДС на свободной фазе двигателя. В каждый момент времени к одной из фаз подключен «+» к другой «-» питания, одна из фаз остается свободной. Вращаясь, магнитное поле ротора наводит ЭДС в свободной обмотке. По мере вращения напряжение на свободной фазе изменяется (рисунок 17).

Рисунок 17. Изменение напряжения на фазе двигателя.

Сигнал с обмотки двигателя разбит на 4 момента:
1. Обмотка подключена к 0
2. Обмотка не подключена (свободная фаза)
3. Обмотка подключена к питающему напряжению
4. Обмотка не подключена (свободная фаза)
Сопоставив сигнал с фаз с управляющим сигналом, видно, что момент перехода на следующее состояние можно детектировать пересечением средней точки (половины питающего напряжения) с фазой, которая в данный момент не подключена (рисунок 18).

Рисунок 18. Сопоставление управляющего сигнала с сигналом на фазах двигателя.

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

Таблица 3. Алгоритм переключения обмоток двигателя

Текущее состояние U V W Следующее состояние
1 — Ожидание пересечения средней точки из + в — + 2
2 Ожидание пересечения средней точки из — в + — + 3
3 + — Ожидание пересечения средней точки из + в — 4
4 + Ожидание пересечения средней точки из — в + — 5
5 Ожидание пересечения средней точки из + в — + — 6
6 — + Ожидание пересечения средней точки из — в + 1

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

Рисунок 19. Детектирование средней точки компаратором.

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

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

Рисунок 20. Вид сигнала фазы при регулировании скорости ШИМ.

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

Рисунок 21. Схема делителя и фильтра сигнала с фазы двигателя.

Рисунок 22. Огибающая сигнала при изменении скважности ШИМ.

Схема со средней точкой

Рисунок 23. Вид виртуальная средней точки. Картинка взята с avislab.com/

С фаз снимаются сигналы через токограничительные резисторы и объединяются, получается вот такая картина:

Рисунок 24. Вид осциллограммы напряжения виртуальной средней точки.

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

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

Рисунок 26. Напряжение после делителя и фильтра низких частот.

Средняя точка будет менять свое значение в зависимости от напряжения (скважности ШИМ), так же как и огибающая сигнала.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *