Назад в библиотеку

Реализация векторного управления асинхронным электродвигателем на микроконтроллере STM32F4

Автор: Борисевич А.В., Омельченко Н.В.
Источник: Борисевич А.В., Омельченко Н.В. Реализация векторного управления асинхронным электродвигателем на микроконтроллере STM32F4 // Современные научные исследования и инновации. 2014. № 4. Ч. 1.

Аннотация

Борисевич А.В., Омельченко Н.В. Реализация векторного управления асинхронным электродвигателем на микроконтроллере STM32F4 В данной работе рассматривается векторное управление с ориентацией по полю (field oriented control, FOC). Показано, что алгоритм векторного управления может быть реализован с помощью прямой трансляции модели Simulink в исходный код на языке Си, с последующим его компиляцией и исполнением на отладочной плате STM32F4Discovery.

Введение

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

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

1. Модель двигателя

На системном уровне описания, двигатель представляет собой элемент с тремя входами напряжения pic_1, входом момента нагрузки pic_2 и выходами фазных токов pic_3, а также выходом скорости pic_4(которую мы далее будем считать электрической, т.е. отличающейся от реальной механической в p раз).

Известно, что электрические величины трехфазной цепи (например, фазные токи) могут быть представлены во вращающейся со скоростью pic_5 системе координат d и q как два ортогональных компонента pic_6:

pic_7

где pic_8 — угловое положение вращающейся системы координат.

Преобразование вида (1) может быть аналогично применено и для фазных напряжений pic_1 Выражение (1) называется инвариантным по амплитуде преобразованием Парка [1] или dq0-преобразованием. Важно отметить, что при соответствующем выборе pic_5 (при вращении системы координат синхронно с вращением вектора тока), величины pic_6 становятся постоянными и при этом pic_10 — амплитуда переменного тока.

Рассмотрим инверсную Г-модель двигателя с ориентацией потокосцепления ротора pic_11 вдоль оси d синхронно вращающейся системы координат [2]. В пространстве состояний модель реализуется системой дифференциальных уравнений четвертого порядка:

pic_12

где pic_13 — токи статора во вращающейся системе dq-координат, pic_14 — напряжения статора в системе dq-координат, pic_4— скорость вращения вала двигателя, pic_15 — электромагнитный момент, развиваемый двигателем.

Параметры модели двигателя в (2) обозначены: pic_16 — приведенное сопротивление ротора, pic_17 — сопротивление статора, pic_18 — приведенная индуктивность статора, pic_19 — приведенная индуктивность намагничивания, pic_20 — число пар полюсов, pic_21 — момент инерции ротора и нагрузки.

Система dq-координат вращается с синхронной скоростью вращения двигателя:

pic_22

2. Модель в Simulink

Алгоритм векторного управления реализован в виде модели Simulink, показанной на рисунке 1.

Рисунок 1. Модель векторного управления в Simulink.

Рисунок 1. Обобщенная структурная схема системы управления

Для упрощения отладки в модель включена возможность управления в скалярном (U/f) режиме, который является частным случаем векторного, в котором pic_24 — определяет амплитуду выходного напряжения, а pic_25 — уставка выходной частоты pic_25.

Входы модели:

theta — угловое положение ротора (электрический угол);

enable — если enable=1, то активизируется векторное управление, если enable=0 — то скалярное;

I_a, I_b — токи фаз A и B с датчиков (в А);

scalar_freq — задание частоты для скалярного режима (в Гц);

omega_ref — задание частоты для векторного режима (в рад/сек);

i_sd_ref — задание тока намагничивания для векторного режима (в А);

scalar_ampl — амплитуда выходного напряжения для скалярного режима (нормированное значение, от 0 до 1).

Выходы модели:

u_abc — выходы напряжения фаз A,B,C (нормированное значение от -1 до 1);

i_s_dq — ток статора во вращающейся синхронной системе координат (в А);

slip — скорость скольжения;

debug — выход для отладочных сигналов.

Модель состоит из нескольких укрупненных подсистем:

Scalar generator — генерация pic_27 для скалярного режима;

FOC — реализация регуляторов векторного алгоритма (4) и (5), а также инверсное преобразование (6) для генерации трехфазного напряжения;

Current sensors — преобразование измеренных значений тока к вращающейся системе координат, согласно (1);осредоточено в одном месте модели.

Slip calculation — вычисление скорости скольжения согласно (3) и первому уравнению в (2).

Центральной частью реализации является подсистема FOC, показанная на рисунке 2. В данном блоке векторное управление реализуется в точности так, как это было описано в предыдущем разделе.

Рисунок 2. Подсистема FOC, реализующая (4), (5) и (6).

Рисунок 2. Подсистема FOC, реализующая (4), (5) и (6).

С целью оптимизации, вычисление тригонометрических функций pic_29 осредоточено в одном месте модели.

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

3. Аппаратная реализация

В качестве аппаратной платформы выбрана плата STM32F4DISCOVERY, процессор STM32F407 которой позволяет реализовывать сложные численные алгоритмы и содержит всю необходимую периферию. Фрагменты кода для генерации ШИМ и считывания инкрементального энкодера взяты из библиотеки STM32 FOC firwmare libraries v2.0 [3].

Для силового модуля был использован частотный преобразователь китайского производства. Он состоит из платы управления и платы ключей, соединяемых проводом-шлейфом. Плата STM32F4DISCOVERY была подключена вместо штатной платы управления.

В качестве датчиков тока использовались LEM HX03-P, сигнал с которых нормировался к интервалу 0 — 3 В с помощью операционного усилителя. Компенсация дрейфа нуля датчиков в микроконтроллере реализована с помощью скользящего среднего с интервалом 1 с для динамической калибровки нуля.

Задание скорости осуществляется с помощью переменного резистора, подключенного к микроконтроллеру. Для отображения числовой информации к микроконтроллеру также был подключен ЖКИ индикатор 20х4 типа AV2040.

Схема задействованных выводов микроконтроллера и их подключение представлена на рисунке 3.

Рисунок 3. Подключение микроконтроллера.

Рисунок 3. Подключение микроконтроллера.

Модель Simuink алгоритма векторного управления была транслирована в код на языке Си с помощью встроенного в MATALB средства Embedded Coder [4]. В качестве стратегии интегрирования выбрана одношаговая схема (ode1). Вся арифметика алгоритма реализована с плавающей точкой одинарной точности (float), которую аппаратно поддерживает микроконтроллер STM32F4. Ядро процессора работает на частоте 168 МГц. Время расчета одного цикла алгоритма — 150 мкс. Частота дискретизации алгоритма была выбрана в 500 мкс.

В качестве компилятора исходного кода использовался KEIL uVision 4.70. Откомпилированная программа занимает 25 кБайт памяти.

Для отладки внутренние сигналы алгоритма управления выводились на два встроенных в микроконтроллер ЦАП.

Рисунок 4. Общий вид макета векторного управления электродвигателем.

Рисунок 4. Общий вид макета векторного управления электродвигателем.

Для испытаний был выбран двигатель DRS71S4 производства SEW Eurodrive, для которого известны параметры pic_16=11.6 Ом, pic_19=987 мкГн. Для тестирования механической нагрузки, шкив двигателя был соединен с управляемым серводвигателем, создающим постоянный тормозящий момент 2 Нм. Отработка профиля скорости показана на рисунке 5.

Рисунок 5. Уставка и действительное значение скорости.

Рисунок 5. Уставка и действительное значение скорости.

Выводы

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

Список использованной литературы

  1. Калачев Ю.Н. Векторное регулирование (заметки практика). Методическое пособие. — М.: ЭФО, 2013. — 63 с.
  2. Riccardo Marino, Patrizio Tomei, Cristiano M. Verrelli, Induction Motor Control Design (Advances in Industrial Control), — Springer, 2010. — 350 pp
  3. UM0483, STM32F103xx AC induction motor IFOC software library V2.0. [Электронный ресурс] — Режим доступа. — URL: http://www.stmcu.org/
  4. Материалы семинара «Генерация кода из моделей Simulink и последующая проверка в реальных условиях», 14 октября 2010 [Электронный ресурс] — Режим доступа. — URL: http://www.compel.ru/