Получить коммерческое предложение
Проверим наличие
перед счётом
Электропривод 8 мин чтения Автор: Мульдияров Алексей

FOC-управление BLDC и PMSM

Field-Oriented Control управляет током двигателя в системе координат, связанной с магнитным полем ротора. Компонента Iq в основном создаёт момент, а Id управляет магнитным потоком. Это даёт плавный момент, низкий шум и высокую эффективность по сравнению с грубой шестиступенчатой коммутацией, но требует точного измерения токов, угла ротора и выполнения регуляторов в жёстком реальном времени. FOC — не библиотечная кнопка. Результат зависит от инвертора, шунтов, ADC timing, dead time, параметров двигателя, датчика положения и protections. Начинать нужно с требований привода и безопасного стенда.

Контур векторного управления двигателем с измерением фазных токов, преобразованиями координат и трёхфазным инвертором

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

Нужны число пар полюсов, фазное сопротивление, индуктивности d/q или приблизительная L, back-EMF/flux linkage, номинальные/пиковые токи, скорость, момент, инерция и температурные пределы. Для нагрузки — профиль момента, ускорение, торможение, возможность обратного вращения и regenerative energy.

Параметры datasheet проверяют измерением, особенно у недорогих моторов. Ошибка числа пар полюсов сразу даст неверный electrical angle. Сопротивление растёт с температурой, а магниты и датчики имеют свои ограничения.

От механического угла к электрическому

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

Угол должен быть доступен к моменту вычисления PWM. Задержка измерения, фильтра и передачи энкодера создаёт phase error, растущий со скоростью. Иногда используют prediction.

Clarke и Park простыми словами

Три фазных тока с суммой около нуля преобразуют Clarke в две неподвижные координаты α/β. Park поворачивает их на электрический угол, получая Id/Iq. PI-регуляторы сравнивают токи с заданиями и формируют Ud/Uq; inverse Park и space-vector PWM переводят напряжения в duty трёх фаз.

Вычисления должны укладываться между ADC sample и обновлением PWM. Аппаратные CORDIC/FMAC, DSP instructions и DMA уменьшают задержку, но важнее детерминированная последовательность.

Один, два или три шунта

Три low-side/inline шунта дают больше наблюдаемости, но стоят дороже и усложняют common-mode. Два шунта позволяют восстановить третий ток по сумме; в некоторых секторах окно измерения сужается. Один DC-link shunt самый экономичный, но требует реконструкции и ограничивает duty/режимы.

Выбирайте по минимальному measurable pulse, скорости ADC и диапазону. Усилитель должен восстановиться после common-mode transient. Kelvin connection, симметричная трассировка и синхронный sampling критичны.

Когда снимать ток

ADC trigger связывают с центром стабильного PWM-интервала, вдали от switching edge и reverse recovery. Blank time учитывает settling усилителя и ringing. При высоком modulation index доступное окно исчезает; firmware должна перестроить sampling либо ограничить voltage vector.

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

Датчик положения или sensorless observer

Encoder даёт точный угол на низкой скорости и при старте, но добавляет стоимость, кабель и механику. Hall sensors просты, но дают грубый угол; интерполяция улучшает плавность. Resolver устойчив к тяжёлой среде, однако требует excitation и signal conditioning.

Sensorless observer оценивает угол по напряжениям/токам и back-EMF. На нулевой/малой скорости сигнал слаб, поэтому нужен open-loop alignment/startup или high-frequency injection. Для нагрузки, которая должна стартовать под неизвестным моментом, encoder часто надёжнее.

Внутренний и внешние контуры

Current loop самый быстрый; speed loop работает медленнее, position loop — ещё медленнее. Bandwidth разделяют, чтобы контуры не спорили. Сначала настраивают измерение и current PI при заблокированном/контролируемом роторе, затем скорость и положение.

Добавьте anti-windup: когда voltage vector достигает предела DC bus, PI не должен бесконечно накапливать ошибку. Feed-forward и decoupling улучшают динамику, но только после базовой устойчивости.

Dead time и компенсация

Dead time предотвращает сквозной ток, однако искажает среднее фазное напряжение в зависимости от направления тока. На малой скорости это создаёт torque ripple. Компенсация учитывает знак тока и фактические задержки драйвера/ключей.

Значение задают по worst-case propagation delay, температуре и разбросу. Уменьшение до красивой формы тока без проверки shoot-through опасно.

Field weakening и regenerative braking

Выше base speed voltage limit не позволяет поддерживать нужный Iq; отрицательный Id ослабляет поле и расширяет скорость ценой тока и потерь. Ограничения двигателя и inverter должны быть известны. Неправильный field weakening может размагнитить магниты или превысить напряжение.

При торможении энергия возвращается в DC bus. Батарея/БП может не принять её, и напряжение вырастет. Нужны brake resistor, active front end или ограничение deceleration.

Аппаратные защиты

Fast overcurrent comparator должен отключать PWM независимо от firmware. Дополнительно контролируют DC bus OVP/UVP, gate-driver fault, phase short, overtemperature и потерю датчика. Safe torque off, если требуется, проектируется как safety-функция отдельно.

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

Идентификация параметров и версия мотора

Если SDK автоматически измеряет R/L/flux, задайте допустимые диапазоны и проверку результата. Loose rotor, подключённая нагрузка или saturated current sensor могут дать неверную модель. Сохраняйте параметры вместе с точным part number/ревизией двигателя, DC bus и температурой. Замена поставщика под тем же механическим размером требует повторной идентификации.

Для observer определите область устойчивого положения/скорости и правило переключения open-loop→closed-loop. Логируйте angle error, current residual и saturation. Алгоритм должен отказаться от запуска, если параметры вне допуска, а не продолжать с опасным током.

Критерии приёмки привода

Укажите torque/speed ripple, start success при worst-case load, settling, acoustic noise, efficiency и максимальную температуру. Fault tests включают open/short phase, потерю angle sensor, DC bus surge, заблокированный ротор и reversal. При каждом тесте проверяют hardware trip latency и отсутствие превышения SOA ключей. Отдельно подтверждают control-loop timing при включённых коммуникациях/логировании, чтобы отладочная нагрузка не скрывала deadline miss.

Практический запуск

Начните с низкого DC bus и ограниченного лабораторного источника. Проверьте порядок фаз, polarities shunts, encoder direction и offset. Затем замкните current loop с малым заданием, измерьте currents и duty. После устойчивости добавьте speed loop.

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

Примеры из каталога ChipBaza

STSPIN32G4 объединяет STM32G4 и трёхфазный gate driver, поддерживая sensored/sensorless FOC с одним, двумя или тремя шунтами. DRV8323HRTAR — пример трёхфазного gate driver Texas Instruments, которому нужен внешний контроллер алгоритма. Это разные уровни интеграции.

Выбор требует проверки bus voltage, gate current, current-shunt amplifiers, protections, package и motor-control SDK. Наличие встроенного MCU не заменяет внешние MOSFET и тепловой расчёт.

Что закрепить в комплекте привода

В одной конфигурации связывают motor MPN/winding, encoder/Hall mapping, power stage, current shunts/offsets, PWM frequency, dead time и regulator/observer parameters. Производственный end-of-line test проверяет phase order, current calibration, angle sensor и короткий controlled spin. Если motor/encoder заменён, параметры не копируют автоматически. Храните firmware+parameter checksum на устройстве и в журнале, чтобы сервис мог восстановить точно квалифицированную пару.

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

Типовые ошибки

  • не проверять число пар полюсов и порядок фаз;
  • снимать ADC рядом с switching edge;
  • выбирать один шунт без оценки измерительных окон;
  • запускать sensorless под полной нагрузкой без алгоритма low-speed;
  • настраивать speed loop до устойчивого current loop;
  • игнорировать anti-windup и voltage saturation;
  • не предусматривать путь regenerative energy;
  • полагаться на firmware вместо быстрого hardware overcurrent.

Чек-лист FOC-привода

  • измерены параметры двигателя и профиль нагрузки;
  • откалиброваны current offsets, angle offset и направления;
  • ADC синхронизирован с PWM и имеет settling margin;
  • current loop укладывается в временной бюджет;
  • dead time рассчитан и проверен при температуре;
  • реализованы voltage/current/thermal/fault limits;
  • регенерация согласована с DC bus;
  • стендовые тесты выполнены от низкого напряжения до полной нагрузки.

Источники для технической проверки

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

Следующий шаг

Проверьте артикулы и количество до отправки заявки

Загрузите спецификацию в BOM-сервис или пришлите полный код производителя менеджеру. Если точное совпадение не доказано, позиция останется на ручной проверке.