В предыдущей статье «Векторное управление электродвигателем «на пальцах» рассматривалась векторная система управления для синхронных электродвигателей. Статья получилась большой, поэтому вопрос про асинхронные электродвигатели (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Т ОАО «НИИЭТ», а как это отлаживать в статье «Способы отладки ПО микроконтроллеров в электроприводе». Также наша фирма ООО «НПФ Вектор» предлагает разработку на заказ систем управления электродвигателями и другим электрооборудованием, примеры выполненных проектов можно посмотреть на нашем сайте.

P.S.
У специалистов прошу прощения за не совсем корректное обращение с некоторыми терминами, в частности с терминами «поток», «потокосцепление», «магнитное поле» и другими – простота требует жертв…

Комментарии (19)


  1. ansector13
    01.02.2016 14:10
    +1

    «Можно стабилизировать скорость регулятором скорости с высокой точностью и быстродействием. Можно использовать асинхронный привод в качестве тягового (в транспорте), задавая требуемый момент тяги.»
    Хороший и наглядный пример частотного привода — стиральная машина: два оборота вперед, полтора оборота назад, по токам статора косвенно определить вес белья и т.д.


  1. BelerafonL
    01.02.2016 14:19
    +1

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


    1. ansector13
      01.02.2016 14:32

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


      1. BelerafonL
        01.02.2016 14:36

        Еще можно автокоммутацией по датчику положения, если это BLDC двигатель. Но по характеристикам получается почти тоже самое, что и дает векторное управление.


  1. ToSHiC
    01.02.2016 16:12

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


    1. ansector13
      01.02.2016 16:18

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


    1. BelerafonL
      01.02.2016 16:30
      +1

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


  1. ITop
    01.02.2016 19:48
    +1

    Большое спасибо за Ваши статьи!

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


    1. BelerafonL
      01.02.2016 20:01
      +1

      Из-за продолжительности включения. Тесловские 306кВт (или сколько их там) — очевидно, не режим работы S1 — длительный. Двигатель развивает их только при разгоне машины. При установившейся скорости движения около 200км/ч требуемая мощность для движения седана примерно 90кВт. Скорее всего приблизительно такая мощность и является длительно-допустимой для их двигателя и именно её нужно сравнивать со «стандартным» асинхронником. А 306кВт — это работа в режиме перегрузки очень короткое время. Конечно, и при длительной мощности 90кВт массогабариты гораздо лучше промышленного АД, но у теслы жидкостное охлаждение, причем, насколько я видел, у них ещё и ротор жидкостью омывается внутри (патенты такие у них есть, но как по факту сделано я не знаю). Ну и да, медный ротор… Вот всё в сумме и дает такие показатели. Очень качественно оптимизированный под свою задачу двигатель, но ничего волшебного.


  1. machestro
    01.02.2016 21:49

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


    1. BelerafonL
      01.02.2016 22:29
      +2

      Во-первых, редуктор — это не коробка передач. У теслы это просто понижающий редуктор, совмещенный с дифференциалом, без каких-либо переключений: одна передача.
      Во-вторых, по многим причинам двигатели с большой частотой тока и частотой вращения получаются с более высокими массогабаритными показателями, чем тихоходный «прямой привод». Поэтому связка высокочастотный двигатель+редуктор получается, как ни странно, зачастую более компактной. Для большого момента требуется большой радиус, а он не всегда доступен.
      В-третьих, мотор-колесо это уже столетняя недостижимая мечта. Как бы ни хотелось это сделать, как бы ни было много «концептов» и «экспериментальных образцов» таких автомобилей — реальность такова, что на сегодняшний день нет ни одного серийного легкового автомобиля с мотор-колесом (если я что-то пропустил, поправьте меня, пожалуйста, и укажите модель). Причин много. Это большая неподрессоренная масса такого колеса (хуже управление автомобилем). Это более низкая надежность — удары, ход подвески, изгиб кабелей, вода, грязь, тормозные колодки рядом, тепло от них… Потом нужно тщательно герметизировать колесо, иначе как проехать по луже? Да и цена такого прямого привода получается, как ни странно, выше, чем спрятать всё в корпус автомобиля и оставить классическое колесо с тормозами внутри. Эксплуатация… «поймали» яму на дороге: на обычной машине поменяли диск и всё, а если это мотор-колесо? А еще, как ни удивительно звучит, КПД высокочастотного двигателя+редуктора обычно получается выше(!) чем у прямого привода колеса. Потому что в первом случае двигатель проектируется на максимум КПД в рабочем диапазоне, а во втором чтобы кое-как впихнуться в колесо и уметь создавать огромный момент с огромными токами при малом габарите.
      В-четвертых, можно применить схему мотор-полуось. Двигатели внутри корпуса, а на колеса раздается тяга «шрусами»: один двигатель — одно колесо. Такая схема, действительно, вполне жизнеспособна, только всё равно двигатели эффективнее применить высокочастотные с редукторами. Почему тесла не сделали именно так, я не знаю. Наверное, всё-таки получаются чуть большие габариты такого решения, чем один мощный двигатель + один редуктор.


  1. Spruce
    02.02.2016 09:14

    Никто случайно не подскажет, из какой серии National Geographic кадр на рисунке 7?


  1. BelerafonL
    02.02.2016 09:29

    Пожалуйста youtu.be/2XQt-BaNy4c?t=23m2s


  1. dron41k
    02.02.2016 11:19

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


  1. jaiprakash
    02.02.2016 13:07

    полноценное векторное управление

    Скажите пожалуйста, чем управление, скажем, на at90pwm3b будет неполноценным? А на stm32 со строенным сигма-дельта АЦП?
    Или есть задачи где отклонение на 1 % в течение 0,1 с несущественно, например, шпиндель фрезера, двигатель электромобиля, а вы занимаетесь управлением где нужна точность выше миллионной доли рад/с и нужно зорко следить за каждой микросекундой?
    Действительно интересно, откуда такие требования по «вооружённости» МК?


    1. BelerafonL
      02.02.2016 14:31
      +1

      На всех motor-control микроконтроллерах можно сделать полноценное векторное управление. at90pwm3b это 8ми битный микроконтроллер с тактовой частотой 16Мгц и таймерами ШИМ на 64Мгц (судя из данных на первой странице, внутрь даташита я не погружался). Этого недостаточно для серьезных задач, хотя простейшее векторное управление (какое-то там) на нем сделать, наверное, можно. Для серводвигателя, например, или для высокочастотных приводов важна частота обсчета контуров тока, скорости, положения. В «полноценном» векторном управлении это нужно успевать обсчитывать на частоте 20кГц или даже выше, что позволяет быстро отреагировать на возмущающее воздействие. Частоту ШИМ можно для сервопривода поднять до 100кГц (для уменьшения пульсаций) за счет ШИМ высокого разрешения и сохранив необходимую дискретность изменения скважности (3000-5000 дискрет задания напряжения для сервопривода это минимум).

      Отклонение регулируемой величины в процентах от времени перевести напрямую в производительность микроконтроллера нельзя. Здесь нужно знать все параметры объекта управления, чтобы промоделировать, на какой частоте надо обсчитывать контура токов/скорости, чтобы получить требуемую точность. Кроме того, для качественного векторного управления нужно обсчитывать еще кучу сопутствующих задач. Навскидку это фильтрация токов фаз на периоде ШИМ фильтром скользящего среднего: если частота ШИМ 10кГц, то измерять надо минимум на 80кГц, чтобы точно знать среднее значение тока на периоде. Это фильтрация сигнала с датчика положения фильтром Калмана или фильтром на основе PLL, чтобы компенсировать «кривизну» датчика холла, скажем, и сформировать гладкий линейный угол. Это куча защит по токам, напряжению ЗПТ, отказу ДПР, перекосу фаз и т.п. Это различные дополнительные функции, такие как коррекция мертвого времени инвертора, чтобы сформировать более гладкий ток, это тепловая модель двигателя, расчет действующего значения тока, активной мощности. И все эти задачи должны считаться вместе с векторным управлением. 8ми разрядный МК это просто не потянет. Нужно производительное 32х разрядное ядро с частотой 100-200МГц. А еще нужна motor-control периферия. Несколько ШИМов, минимум 6, а лучше раза в два-три больше (инверторы разные бывают) с мертвым временем, теневыми регистрами и всей принятой для этого логикой. Нужны каналы датчиков положения — для энкодера и квадратурного датчика (аппаратная поддержка в МК), нужно быстродействующее АЦП (от 1МГц и выше) чтобы в нужные моменты измерять токи и т.п. Некоторые STM32 микроконтроллеры годны для того, чтобы сделать «полноценное векторное управление». Но иногда там не хватает количества ШИМов или каналов датчиков положения. Самый богатый выбор motor-control микроконтроллеров дает Texas Instruments — например, серия Piccolo, Delfino.

      Для шпинделя промышленного станка, например, нужна высокая частота тока — чуть ли не до килогерца иногда. Соответственно, обсчитывать всю «векторную» надо на 20-30кГц, иначе напряжение не синус будет, а непонятно что. Если это тяговый привод, то там еще больше всего. И частоты там большие на высокой скорости, куча защит, плавающая частота ШИМ от 2 до 20кГц, обязательная тепловая модель как двигателя так и ключей инвертора, чтобы «на низах» работать с перегрузкой несколько крат и ничего не спалить, всевозможные фильтры токов и датчика положения, ограничение мощности при повышении/понижении напряжения звена постоянного тока (мягко, чтобы не было колебаний), а еще АБС/ПБС туда же можно навесить, интерфейсы связи быстродействующие (нужны для получения задания и выдачи телеметрии)…