Что такое векторное и скалярное управление асинхронным двигателем
Векторное управление для асинхронного электродвигателя «на пальцах»
В предыдущей статье «Векторное управление электродвигателем «на пальцах» рассматривалась векторная система управления для синхронных электродвигателей. Статья получилась большой, поэтому вопрос про асинхронные электродвигатели (induction motors) был вынесен в отдельную публикацию. Данная статья является продолжением предыдущей и опирается на приведенные там объяснения принципов работы электродвигателей. Она расскажет об особенностях работы асинхронного двигателя применительно к векторному управлению, а также покажет отличия в структуре векторной системы управления между синхронной и асинхронной машиной.
Как работает асинхронный электродвигатель? Наиболее популярное объяснение говорит что-то типа «статор создает вращающееся магнитное поле, которое наводит ЭДС в роторе, из-за чего там начинают течь токи, в результате ротор увлекается полем статора и начинает вращаться». Лично я от такого объяснения всю физику процесса понимать не начинаю, поэтому давайте объясню по-другому, «на пальцах».
Все же видели видео, как магнит взаимодействует с медным цилиндром? Особенно обратите внимание на диапазон времени с 0:49 до 1:03 – это уже самый настоящий асинхронный двигатель:
Эффект происходит из-за появления в цилиндре вихревых токов. Согласно закону электромагнитной индукции, открытого Майклом Фарадеем, при изменении магнитного потока замкнутого контура в нем возникает ЭДС (по-простому считайте, что напряжение). Эта ЭДС, применительно к медному цилиндру, тут же вызывает появление в цилиндре тока. При этом этот ток тоже создает свой, ответный магнитный поток, направленный ровно в противоположную сторону от изменения потока магнита, который мы подносим:
Индукционный ток, возникающий в замкнутом проводящем контуре, имеет такое направление, что создаваемое им магнитное поле противодействует тому изменению магнитного потока, которым был вызван данный ток.
Это можно понимать так, что замкнутый контур сопротивляется изменению магнитного потока внутри себя. Если вы резко поднесёте магнит к медному цилиндру, т.е. сделаете резкое изменение магнитного потока, то в цилиндре потекут такие ответные токи, что магнитное поле внутри цилиндра в первый момент времени будет равно нулю: магнитное поле поднесенного магнита будет полностью скомпенсировано магнитным полем токов цилиндра (с допущениями, конечно). Если магнит поднести и держать, то токи в цилиндре из-за наличия активного сопротивления меди постепенно спадут, а поле цилиндра, создаваемое его токами, пропадет: магнитный поток постоянного магнита «прорвется» внутрь цилиндра, как будто никакого цилиндра и нет. Но стоит попытаться убрать магнит, как цилиндр отреагирует снова – теперь он будет пытаться сам «воссоздать» внутри себя пропадающий магнитный поток, т.е. будет опять сопротивляться изменению магнитного потока, в данном случае его исчезновению. Но что значит «воссоздать магнитный поток»? Это значит, что на какое-то время медный цилиндр можно считать условно «постоянным магнитом» – в нем циркулирует вихревой ток, создающий магнитное поле (на этом же принципе «висят» сверхпроводники в магнитном поле, но это совсем другая история).
Давайте теперь обратимся к конструкции асинхронного двигателя. Ротор асинхронного двигателя условно можно представлять себе также в виде медного цилиндра. Но в реальных конструкциях это некая решётка в виде «беличьей клетки» (рисунок 1) из меди или алюминия, совмещенная с магнитопроводом (шихтованное железо).
Рисунок 1. Ротор асинхронного двигателя типа «беличья клетка» с током в одной из «рамок» беличьей клетки, реагирующей на нарастание внешнего магнитного поля.
На рисунке схематично показано протекание тока в одной из «рамок», т.е. в некоторых прутьях беличьей клетки, если сверху поднести магнит (создать ток в статоре). На самом деле ток в этом случае протекает во всех прутьях, кроме, условно, верхнего и нижнего, для которых изменения потока нет (но они бы среагировали на горизонтально поднесенный магнит).
Помните ещё из начала прошлой статьи картинку со схематическим изображением двухфазной синхронной машины, где ротором был магнит? Давайте теперь сделаем из неё асинхронный двигатель: вместо магнита поставим две перпендикулярные короткозамкнутые катушки, символизирующие медный цилиндр ротора (рисунок 2).
Рисунок 2. Схематическое изображение двухфазного асинхронного двигателя с короткозамкнутым ротором.
Замена цилиндра на две катушки для пояснения принципа работы (или моделирования) корректна, точно также как корректна замена трехфазной обмотки на двухфазную. Только в этом случае мы заменяем… «бесконечнофазную обмотку» цилиндра (бесконечное число рамок) на две катушки с эквивалентной индуктивностью и сопротивлением. Ведь двумя катушками можно создать точно такой же вектор тока и магнитного потока, как и цилиндром.
А теперь давайте сделаем на короткое время из асинхронной машины синхронную. Подадим в катушку оси β постоянный ток и подождем секунды две-три, пока в роторе перестанут течь ответные токи: «поднесем внешний магнит». То есть дождемся спадания токов в роторе, чтобы магнитное поле статора «пронзило ротор» и никто ему не мешал. Что теперь будет, если выключить ток в статоре? Правильно, на те же две-три секунды, пока ток ротора этому противится, мы из ротора получим «обычный магнит» (рисунок 3).
Рисунок 3. Асинхронный двигатель, когда только что выключили постоянный ток по фазе β – течет ток в роторе ird.
Что же мы ждем? Быстрее, пока магнит не пропал, рисуем вдоль него привычную ось d (как в синхронной машине) и перпендикулярную ей ось q, привязанные к ротору. Включаем структуру векторного управления синхронной машиной, подаем ток по оси q, создавая момент, поехали!
Так можно даже действительно сделать несколько оборотов, пока наш сахарный магнит не растаял, а ось d не ушла в небытие. Что же делать? Давайте не будем выключать ток по оси d, подпитывая наш магнит! И опять же сохраним структуру векторного управления синхронной машиной, просто подав задание по оси d (раньше там был ноль). Итак, смотрим на рисунок 4: оси d, q по датчику положения «приделаны» к ротору, двигатель стоит, подан ток по оси d в статоре, что в данном случае для стоячей машины совпадает с осью β. Тока по оси q пока нет: ждем, пока ротор «намагнитится». И вот подаем ток isq (s – статор)! Поехали!
Рисунок 4. Подадим ток в ось d, намагнитив машину, подготовив всё для подачи тока в ось q статора.
Далеко ли мы уедем таким методом барона Мюнхгаузена? К сожалению, нет. Смотрите, что произошло (рисунок 5):
Рисунок 5. А магнит-то сполз!
Двигатель начал крутиться, но через некоторое время после того, как мы подали ток в ось q, образовав суммарный ток is и «прибив» этот вектор к положению ротора, магнит в роторе «съехал»! И встал ровно вдоль вектора is. Ротор же не понимает, где мы нарисовали ему оси d, q… Ему все равно, крутился он или нет. Важно, что его внутренний «наведенный магнит» в конечном счете хочет стать сонаправленным с магнитным потоком статора, «подчиниться» внешнему потоку. Из-за съехавшего магнита двигатель перестанет крутиться: мало того, что между магнитом ротора и током iq нет желаемых 90 градусов, так еще и ток оси d теперь его тянет в противоположную сторону, компенсируя момент, создаваемый током iq. Метод барона Мюнхгаузена не удался.
Что же делать с ускользающим магнитом ротора? А давайте сделаем структуру векторного управления асинхронного двигателя не в осях d,q, приделанных к ротору, а в других осях, приделанных именно к текущему положению «магнита ротора» – назовем их оси x,y, чтобы отличать от d,q. По «научному» – это оси, ориентированные по потокосцеплению ротора. Но как же узнать, где конкретно сейчас это потокосцепление ротора, т.е. куда повернут магнит в роторе? Его положение зависит… во-первых, от положения самого ротора (датчик положения у нас есть, хорошо), во-вторых, от токов статора (создающих поток статора, по которому и собирается в конечном счете повернуться магнит ротора), а в-третьих от параметров роторной цепи – индуктивности и сопротивления «медного цилиндра» (он же беличья клетка, он же роторная обмотка, он же цепь ротора). Поэтому… зная всё это, положение «магнита» ротора можно просто вычислять по нескольким дифференциальным уравнениям. Делает это так называемый наблюдатель потокосцепления ротора, выделенный цветом на итоговой структурной схеме векторного управления асинхронным двигателем (рисунок 6).
Рисунок 6. Векторная датчиковая структура управления асинхронным двигателем
В наблюдатель заводятся показания с датчика положения ротора, а также текущие токи статора в осях α, β. На выходе наблюдателя – положение «магнита» ротора, а именно угол наблюдаемого потокосцепления ротора . В остальном структура полностью аналогична таковой для синхронной машины, только оси d,q переименованы в x,y, а на ось x подано задание тока, который будет поддерживать наш «магнит» в роторе. Также на многих обозначениях добавлен индекс “s”, чтобы показать, что данная величина имеет отношение к статору, а не к ротору. Также надо отметить, что в западной литературе не используют оси x,y: у них ось d всегда направлена по полю ротора, что для асинхронного двигателя, что для синхронного. Наши ученые еще в советское время разделили оси d,q и x,y, чтобы исключить путаницу: d,q прикреплены к ротору, а x,y к полю ротора.
Что же получается? Магнит ротора всё время скользит, сползает от текущего положения на роторе в сторону тока оси y. Чем больше этот ток, тем сильнее скольжение. Наблюдатель в реальном времени вычисляет положение этого магнита и «подкручивает» оси x,y всё время вперед по отношению к осям d,q (положению ротора). Ось x всегда соответствует текущему положению потокосцепления в роторе – положению «магнита». Т.е. оси x,y бегут всегда (в двигательном режиме) немного быстрее вращения ротора, компенсируя скольжение в нем. Токи в роторе, если их измерить или промоделировать, получаются синусоидальными. Только изменяются они не с частотой статорных токов, а с частотой этого скольжения, т.е. очень медленно. Если в статоре промышленного асинхронника 50Гц, то при работе под нагрузкой частота тока в роторе – единицы герц. Вот, собственно, и весь секрет векторного управления для асинхронного двигателя.
Чем векторное управление асинхронным двигателем лучше, чем скалярное? Скалярное управление это такое, когда к двигателю прикладывается напряжение заданной частоты и амплитуды – например, 380В 50Гц. И от нагрузки на роторе оно не зависит – никаких регуляторов токов, векторов… Просто задается частота напряжения и его амплитуда – скалярные величины, а токи и потоки в двигателе пусть сами себе удобное место находят, как хотят. В установившемся режиме работы двигателя векторное управление неотличимо от скалярного – векторное точно также будет прикладывать при номинальной нагрузке те же, скажем, 380В, 50Гц. Но в переходных режимах… если нужно быстро запустить двигатель с заданным моментом, если нужно отрабатывать диаграмму движения, если есть импульсная нагрузка, если нужно сделать генераторный режим с определенным уровнем мощности – всё это скалярное управление или не может сделать, или делает это с отвратительными, медленными переходными процессами, которые могут к тому же «выбить защиту» преобразователя частоты по превышению тока или напряжения звена постоянного тока (двигатель колеблется и может запрыгивать в генераторный режим, к которому преобразователь частоты не всегда приспособлен).
В векторной же структуре «всё под контролем». Момент вы задаете сами, поток тоже. Можно ограничить их на нужном уровне, чтобы не превысить уставок защиты. Можно контролируемо форсировать токи, если кратковременно нужно сделать в несколько раз больший момент. Можно регулировать не только момент двигателя, но и поток (ток оси x): если нагрузка на двигателе мала, то нет никакого смысла держать полный поток в роторе (делать магнит «номинального режима») – можно ослабить его, уменьшив потери. Можно стабилизировать скорость регулятором скорости с высокой точностью и быстродействием. Можно использовать асинхронный привод в качестве тягового (в транспорте), задавая требуемый момент тяги. В общем, для сложных применений с динамичной работой двигателя векторное управление асинхронным двигателем незаменимо.
Также есть отличительные особенности векторного управления асинхронного двигателя от синхронного. Первая – это датчик положения. Если для синхронного привода нам нужно знать абсолютное положение ротора, чтобы понять, где магнит, то в асинхронном приводе этого не требуется. Ротор не имеет какой-то выраженной полюсной структуры, «магнит» в нем постоянно скользит, а если посмотреть в формулы наблюдателя потокосцепления ротора, то там не требуется знания положения: в формулы входит только частота вращения ротора (на самом деле есть разные формулы, но в общем случае так). Поэтому на датчике можно сэкономить: достаточно обычного инкрементального энкодера для отслеживания частоты вращения (или даже тахогенератора), абсолютные датчики положения не требуются. Вторая особенность – управление потоком в асинхронном электродвигателе. В синхронной машине с постоянными магнитами поток не регулируется, что ограничивает максимальную частоту вращения двигателя: перестает хватать напряжения на инверторе. В асинхронном двигателе, когда это случается… просто уменьшаете задание по оси x и едете дальше! Максимальная частота не ограничена! Да, от этого будет снижаться момент двигателя, но, главное, ехать «вверх» можно, в отличие от синхронной машины (по-правде там тоже можно, но недалеко, не для всех двигателей и с кучей проблем).
Точно также существуют бездатчиковые алгоритмы векторного управления асинхронным двигателем, которые оценивают угол потокосцепления ротора не используя сигнал датчика положения (или скорости) вала ротора. Точно также, как и для синхронных машин, в работе таких систем есть проблемы на низкой частоте вращения ротора, где ЭДС двигателя мала.
Также следует сказать пару слов о роторе. Если для промышленных асинхронных двигателей его удешевляют, используя алюминиевую беличью клетку, то в тяге, где массогабаритные показатели важнее, наоборот, могут использовать медный цилиндр. Так, во всеми любимом электромобиле Tesla стоит именно асинхронный электродвигатель с медным ротором (рисунок 7)
Рисунок 7. Ротор асинхронного электродвигателя Tesla Model S в стальной обшивке (фото из разных источников за разные годы)
Вот, собственно, и всё, что я хотел сказать про асинхронный двигатель. В данной обзорной статье не рассмотрены многие тонкости, такие как регулятор потока ротора, возможное построение векторной структуры в других осях координат, математика наблюдателя потокосцепления ротора и многое другое. Как и в конце прошлой статьи, за дальнейшими подробностями отсылаю читателя к современным книгам по приводу, например к «Анучин А. С. Системы управления электроприводов. МЭИ, 2015».
На каком микроконтроллере можно сделать полноценное векторное управление, читайте, например, в статье «Новый отечественный motor-control микроконтроллер К1921ВК01Т ОАО «НИИЭТ», а как это отлаживать в статье «Способы отладки ПО микроконтроллеров в электроприводе». Также наша фирма ООО «НПФ Вектор» предлагает разработку на заказ систем управления электродвигателями и другим электрооборудованием, примеры выполненных проектов можно посмотреть на нашем сайте.
Векторное управление электродвигателем «на пальцах»
— Что такое векторное управление?
— Держать ток под 90 градусов.
Термин «векторное управление» электродвигателями знаком всем, кто хоть как-то интересовался вопросом, как с помощью микроконтроллера управлять двигателем переменного тока. Однако обычно в любой книге по электроприводу глава про векторное управление находится где-нибудь ближе к концу, состоит из кучи волосатых формул с отсылками ко всем остальным главам книги. Отчего разбираться в этом вопросе совсем не хочется. И даже самые простые объяснения всё равно держат путь через дифференциальные уравнения равновесия, векторные диаграммы и кучу другой математики. Из-за чего появляются примерно вот такие вот попытки как-то закрутить двигатель без использования мат.части. Но на самом деле векторное управление – это очень просто, если понимать принцип его работы «на пальцах». А там уже и с формулами разбираться в случае надобности будет веселее.
Принцип работы синхронной машины
Рассмотрим принцип работы самого простого двигателя переменного тока – синхронной машины с постоянными магнитами. Удобный пример – компас: его магнитная стрелка представляет из себя ротор синхронной машины, а магнитное поле Земли – магнитное поле статора. Без внешней нагрузки (а в компасе её нет, если не считать трение и жидкость, гасящую колебания стрелки) ротор всегда ориентируется по полю статора. Если мы будем держать компас и вращать под ним Землю, то стрелка будет крутиться вслед, совершая работу по перемешиванию жидкости внутри компаса. Но есть и чуть более простой способ – можно взять внешний магнит, например, в виде стержня с полюсами на концах, поле которого значительно сильнее магнитного поля Земли, поднести его к компасу сверху и вращать магнит. Стрелка будет двигаться вслед за вращающимся магнитным полем. В настоящем синхронном двигателе поле статора создается электромагнитами – катушками с током. Схемы обмоток там сложные, но принцип один – они создают статором магнитное поле, направленное в нужную сторону и имеющее нужную амплитуду. Посмотрим на следующий рисунок (Рисунок 1). В центре изображен магнит – ротор синхронного двигателя («стрелка» компаса), а по бокам два электромагнита – катушки, создающие каждая свое магнитное поле, одна в вертикальной оси, другая в горизонтальной.
Рисунок 1. Принцип действия синхронной электрической машины
Рисунок 2. Угловая характеристика синхронной машины (здесь есть некоторая историческая путаница со знаками момента и угла, из-за чего часто рисуют характеристику перевернутой относительно горизонтальной оси).
Чтобы получить этот график на практике, можно поставить на вал ротора датчик вращающего момента, затем включить любой вектор тока, например, просто подать ток в фазу α. Ротор повернется в соответствующее положение, которое нужно принять за ноль. Потом через датчик момента «руками» нужно поворачивать ротор, фиксируя на графике в каждой точке угол θ, на который повернули, и момент, который показал датчик. Т.е. нужно растягивать «магнитную пружину» двигателя через датчик момента. Самый большой момент окажется при угле в 90 градусов от вектора тока (от начала). Амплитуда получившегося максимального момента Ммакс пропорциональна амплитуде приложенного вектора тока. Будет приложен 1А, получим, скажем, Ммакс = 1 Н∙м (ньютон*метр, единица измерения вращающего момента), если подадим 2А, получим Ммакс = 2 Н∙м.
Из этой характеристики следует, что двигатель развивает наибольший момент, когда ротор находится под 90° к вектору тока. Так как мы при создании системы управления на микроконтроллере хотим получить от двигателя наибольший момент при минимуме потерь, а потери, в первую очередь, это ток в обмотках, то рациональнее всего ставить вектор тока всегда под 90° к магнитному полю ротора, т.е. перпендикулярно магниту на рисунке 1. Нужно поменять всё наоборот – не ротор едет к задаваемому нами вектору тока, а мы задаем вектор тока всегда под 90° к ротору, как бы он там не вращался, т.е. «прибить» вектор тока к ротору. Регулировать же момент двигателя будем амплитудой тока. Чем больше амплитуда – тем выше момент. А частота вращения, частота тока в обмотках это уже «не наше» дело – какая получится, как ротор будет вращаться, так и будет – мы управляем моментом на валу. Как ни странно, именно это и называется векторным управлением – когда мы управляем вектором тока статора так, чтобы он был под 90° к магнитному полю ротора. Хотя некоторые учебники дают более широкие определения, вплоть до такого, что векторным управлением называют вообще любые законы управления, где задействованы «вектора», но обычно под векторным управлением понимается именно приведенный выше способ управления.
Строим структуру векторного управления
Рисунок 3. Замкнутая по току структура управления для одной фазы
Здесь задание тока iα_зад – некая константа, тот ток, который мы хотим поддерживать для этой фазы, например 1А. Задание поступает на сумматор регулятора тока, раскрытая структура которого показана выше. Если читатель не знает, как работает ПИ-регулятор – то увы и ах. Могу лишь посоветовать что-то из этого. Регулятор тока на выходе задает напряжение фазы Uα. Напряжение поступает на блок ШИМ, который рассчитывает задания скважностей (уставок сравнения) для таймеров ШИМ микроконтроллера, формирующих ШИМ на мостовом инверторе из четырех ключей, чтобы сформировать это Uα. Алгоритм может быть разный, например, для положительного напряжения ШИМим правой стойкой пропорционально заданию напряжения, на левой замкнут нижний ключ, для отрицательного ШИМим левой, на правой замкнут нижний. Не забываем добавить мёртвое время! В итоге такая структура делает программный «источник тока» за счет источника напряжения: мы задаем нужное нам значение iα_зад, а данная структура с определенным быстродействием его реализует.
Дальше, возможно, некоторые читатели уже подумали, что до векторной структуры управления осталось дело за малым – нужно поставить два регулятора тока, на каждую фазу по регулятору, и формировать на них задание в зависимости от угла с датчика положения ротора (ДПР), т.е. сделать что-то типа такой структуры (Рисунок 4):
Рисунок 4. Неправильная (наивная) структура векторного управления
Так делать нельзя. При вращении ротора переменные iα_зад и iβ_зад будут синусоидальными, т.е. задание на регуляторы тока будет всё время меняться. Быстродействие регулятора не бесконечно, поэтому при изменении задания он не мгновенно его отрабатывает. Если задание постоянно менять, то регулятор будет всё время его догонять, никогда не достигая. И с ростом скорости вращения двигателя отставание реального тока от заданного будет всё больше и больше, пока желаемый угол в 90° между током и магнитом ротора совсем не перестанет на него быть похожим, а векторное управление не перестанет быть таковым. Поэтому делают по-другому. Правильная структура следующая (Рисунок 5):
Рисунок 5. Структура векторного датчикового управления для двухфазной синхронной машины
Рисунок 6. Координатные преобразования из неподвижных осей α и β, привязанных к статору двигателя, к вращающимся осям осям d и q, привязанных к ротору
То есть вместо «вращения» задания регуляторов (как было в прошлой структуре), вращаются их входы и выходы, а сами регуляторы работают в статическом режиме: токи d, q и выходы регуляторов в установившемся режиме постоянны. Оси d и q вращаются вместе с ротором (так их вращает сигнал с датчика положения ротора), при этом регулятор оси q регулирует как раз тот ток, который в начале статьи я называл «перпендикулярным полю ротора», то есть это моментообразующий ток, а ток d сонаправлен с «магнитом ротора», поэтому он нам не нужен и мы задаём его равным нулю. Такая структура избавлена от недостатка первой структуры – регуляторы токов даже не знают, что что-то где-то крутится. Они работают в статическом режиме: отрегулировали каждый свой ток, вышли на заданное напряжение – и всё, как ротор от них не убегай, они про это даже не узнают: всю работу по повороту делают блоки координатных преобразований.
Приведенная выше структура действительно работает и используется в современных электроприводах. Только в ней не хватает целой кучи мелких «улучшалок», без которых её уже не принято делать, типа компенсации перекрестных связей, разных ограничений, ослабления поля и т.п. Но базовый принцип именно такой.
А если нужно регулировать не момент привода, а всё-таки скорость (по правильному угловую скорость, частоту вращения)? Ну тогда ставим еще один ПИ-регулятор – регулятор скорости (РС). На вход подаем задание скорости, а на выходе имеем задание момента. Так как ток оси 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. Работа датчика положения на элементах Холла для трехфазной машины и экстраполяция его сигнала
Часто для серводвигателей используется сочетание энкодера и датчика Холла. В этом случае можно сделать единый программный модуль их обработки, убирая недостатки обоих: делать экстраполяцию угла, приведенную выше, но не по времени, а по меткам с энкодера. Т.е. внутри от фронта до фронта датчика Холла работает энкодер, а каждый фронт Холла чётко инициализирует текущее абсолютное угловое положение. В этом случае неоптимальным (не под 90°) окажется лишь первое движение привода, пока он не доехал до какого-нибудь фронта датчика Холла. Отдельную проблему в этом случае представляет обработка неидеальности и того и другого датчика — симметрично и равномерно элементы Холла редко кто располагает…
В еще более дорогих применениях используют абсолютный датчик положения с цифровым интерфейсом (абсолютный энкодер), который сразу выдает абсолютное положение и позволяет не испытывать описанных выше проблем.
Если в электродвигателе очень жарко, а также когда требуется повышенная точность измерения угла, используют «аналоговый» сельсинный датчик (резольвер, вращающийся трансформатор). Это маленькая электрическая машина, используемая как датчик. Представьте, что в рассмотренной нами синхронной машине на рисунке 1 вместо магнитов стоит еще одна катушка, на которую мы подаем высокочастотный сигнал. Если ротор стоит горизонтально, то сигнал наведется только в катушку статора фазы α, если вертикально – то только в β, если перевернуть его на 180 – то изменится фаза сигнала, а в промежуточных положениях наводится и туда и сюда по закону синуса/косинуса. Соответственно, измеряя амплитуду сигнала в двух катушках, по соотношению этой амплитуды и по фазовому сдвигу можно также определять положение. Установив такую машину как датчик к основной, можно узнавать положение ротора.
Есть еще много экзотических датчиков положения, особенно для сверхвысокоточных применений, например, для изготовления электронных чипов. Там в ход идут уже любые физические явления, чтобы только узнать положение наиболее точно. Их рассматривать не будем.
Упрощение векторного управления
Рисунок 12. Структура бездатчикового векторного управления
Наблюдатель – это такой блок, на который подается информация о приложенном к двигателю напряжении (например, из задания на модуль ШИМ) и о токах в двигателе с датчиков. Внутри наблюдателя работает модель электродвигателя, которая, грубо говоря, пытается подстроить свои токи в статоре под измеренные с реального двигателя. Если у неё это получилось, то можно считать, что и положение моделируемого внутри вала ротора тоже совпадает с реальным и им можно пользоваться для нужд векторного управления. Ну это, конечно, совсем упрощённо. Видов наблюдателей таких – не пересчитать. Каждый аспирант по специальности «электропривод» пытается изобрести именно свой, который чем-то лучше других. Основной принцип – отслеживание ЭДС электродвигателя. Поэтому чаще всего бездатчиковая система управления работоспособна только на относительно высокой частоте вращения, где ЭДС большая. А также имеет еще ряд недостатков по сравнению с наличием датчика: нужно знать параметры двигателя, быстродействие привода ограничено (если частота вращения резко меняется, наблюдатель может не успеть её отследить и какое-то время «врать», а то и «развалиться» совсем), настройка наблюдателя – это целая процедура, для его качественной работы нужно точно знать напряжение на двигателе, точно измерять его токи и т.п.
Есть и другой вариант упрощения. Например, можно сделать так называемую «автокоммутацию». В этом случае для трехфазного двигателя отказываются от сложного метода ШИМ, отказываются от сложной векторной структуры и начинают просто включать фазы двигателя по датчику положения на элементах Холла, даже иногда без всякого токоограничения. Ток в фазах получается не синусоидальный, а трапецеидальный, прямоугольный или еще более искаженный. Но стараются сделать так, чтобы средний вектор тока был всё равно под 90 градусов к «магниту ротора» выбором момента включения фаз. При этом, включая фазу под напряжение, неизвестно, когда же в фазе двигателя нарастет ток. На низкой частоте вращения он это делает быстрее, на высокой, где мешает ЭДС машины, медленнее, еще темп нарастания тока зависит от индуктивности двигателя и т.п. Поэтому, даже включая фазы точно в нужный момент времени, совсем не факт, что средний вектор тока окажется в нужном месте и с нужной фазой – он может как опережать, так и запаздывать относительно оптимальных 90 градусов. Поэтому в таких системах вводят настройку «опережения коммутации» – по сути просто время, насколько раньше нужно на фазу двигателя подавать напряжение, чтобы в итоге фаза вектора тока получилась более близка к 90 градусам. По-простому это называют «настройка таймингов». Так как ток в электродвигателе при автокоммутации не синусоидальный, то, если взять рассмотренную выше синусоидальную машину и управлять ей таким вот образом, момент на валу будет пульсировать. Поэтому в двигателях, предназначенных для автокоммутации, часто специальным образом меняют магнитную геометрию ротора и статора, чтобы они стали более подходящими к такому типу управления: ЭДС таких машин делают трапецеидальной, благодаря чему в режиме автокоммутации они работают лучше. Синхронные машины, оптимизированные для автокоммутации, получили название бесколлекторных двигателей постоянного тока (БДПТ) или по-английски BLDC (Brushless Direct Current Motor). Режим автокоммутации также часто называют вентильным режимом, а двигатели с ним работающие – вентильные. Но это всё просто разные названия, ничем не влияющие на суть (но матёрые электроприводчики часто страдают СПГС в вопросах, связанных с этими названиями). Есть неплохое видео, иллюстрирующее принцип работы таких машин. На нем показан обращенный двигатель, где ротор снаружи, а статор внутри:
А вот здесь есть курс статей по таким двигателям и аппаратной части системы управления.
Можно пойти даже на еще большее упрощение. Коммутировать обмотки так, чтобы одна фаза всё время оказывалась «свободна» и к ней не прикладывался ШИМ. Тогда в ней можно измерять ЭДС (наведенное в катушке фазы напряжение), и, когда это напряжение переходит через ноль, использовать это как сигнал датчика положения ротора, потому что фаза этого наведенного напряжения зависит как раз от положения ротора. Получается бездатчиковая автокоммутация, что широко используется в различных простеньких приводах, например, в «регуляторах» для пропеллеров авиамоделей. При этом надо помнить, что ЭДС машины появляется только на относительно высокой частоте вращения, поэтому для старта такие системы управления просто не спеша перебирают фазы, надеясь, что ротор двигателя будет следовать за подаваемым током. Как только ЭДС появилась, включается режим автокоммутации. Поэтому бездатчиковая система (такая простая, да и сложная чаще всего тоже) не подходит для задач, где двигатель должен уметь развивать момент на околонулевых частотах вращения, например, для тягового привода автомобиля (или его модели), сервопривода какого-то механизма и т.п. Зато бездатчиковая система с успехом подходит для насосов и вентиляторов, где как раз и применяется.
Но иногда делают даже и еще большее упрощение. Можно совсем отказаться от микроконтроллера, ключей, датчиков положения и прочего, осуществляя переключение фаз специальным механическим коммутатором (Рисунок 13):
Рисунок 13. Механический коммутатор для переключения обмоток
При вращении ротор сам переключает свои части обмоток, меняя приложенное к ним напряжение, при этом ток в роторе протекает переменный. Коммутатор располагают таким образом, чтобы магнитный поток ротора и статора снова оказывался близким к 90 градусам, дабы достичь максимума момента. Такие двигатели по наивности называют двигателями постоянного тока, но совершенно незаслуженно: внутри-то, после коллектора, ток всё равно переменный!
Заключение
Все электрические машины работают схожим образом. В теории электропривода даже существует понятие «обобщенная электрическая машина», к которой сводят работу других. Показанные в статье объяснения «на пальцах» никоим образом не могут служить практическим руководством к написанию кода микроконтроллера. В статье рассмотрен хорошо если один процент информации, которая требуется для реализации настоящего векторного управления. Чтобы сделать что-то на практике, нужно, во-первых, знать ТАУ, хотя бы на уровне понимания, как работает ПИ-регулятор. Потом нужно всё-таки изучить математическое описание как синхронной машины, так и синтеза векторного управления. Также изучить векторную ШИМ, узнать, что такое пары полюсов, познакомиться с типами обмоток машин и прочее. Это можно сделать в свежей книге «Анучин А. С. Системы управления электроприводов. МЭИ, 2015», а также в «Калачев Ю. Н. Векторное регулирование (заметки практика)». Следует предостеречь читателя от погружения в формулы «старых» учебников по приводу, где основной упор сделан на рассмотрение характеристик электродвигателей при питании напрямую от трехфазной промышленной сети, без всяких микроконтроллеров и датчиков положения. Поведение двигателей в этом случае описывается сложными формулами и зависимостями, но для задачи векторного управления они почти никакой пользы не несут (если только изучить для саморазвития). Особенно следует с осторожностью относиться к рекомендациям старых учебников, где, например, сказано, что синхронная машина не должна работать на максимуме своего момента, так как там работа неустойчива и грозит опрокидыванием – для векторного управления всё это «вредные советы».
На каком микроконтроллере можно сделать полноценное векторное управление, читайте, например, в нашей статье Новый отечественный motor-control микроконтроллер К1921ВК01Т ОАО «НИИЭТ», а как это отлаживать в статье Способы отладки ПО микроконтроллеров в электроприводе. Также заходите на наш сайт: там, в частности, выложено два занудных видео, где показано на практике, как настроить ПИ-регулятор тока, а также как работает замкнутая по току и векторная бездатчиковая структура управления. Кроме того, можно приобрести отладочный комплект с готовой датчиковой векторной структурой управления на отечественном микроконтроллере.
Продолжение статьи, где рассказано про асинхронные двигатели здесь.