Автор: Борисевич А.В., Омельченко Н.В.
Источник: Борисевич А.В., Омельченко Н.В. Реализация векторного управления асинхронным электродвигателем на микроконтроллере STM32F4 // Современные научные исследования и инновации. 2014. № 4. Ч. 1.
Борисевич А.В., Омельченко Н.В. Реализация векторного управления асинхронным электродвигателем на микроконтроллере STM32F4 В данной работе рассматривается векторное управление с ориентацией по полю (field oriented control, FOC). Показано, что алгоритм векторного управления может быть реализован с помощью прямой трансляции модели Simulink в исходный код на языке Си, с последующим его компиляцией и исполнением на отладочной плате STM32F4Discovery.
Векторное управление асинхронными двигателями — в настоящий момент доминирующая технология в области промышленного и транспортного электропривода переменного тока. Преимуществами векторного управления являются: обеспечение динамических характеристик, сравнимых с серводвигателями постоянного тока; увеличение КПД электропривода; возможность работы на малых скоростях в безредукторном приводе.
Структура статьи следующая: сначала кратко описывается алгоритм векторного управления по полю, потом описывается реализованная модель, далее описываются аппаратные средства и приводится результат реального испытания алгоритма.
На системном уровне описания, двигатель представляет собой элемент с тремя входами напряжения , входом момента нагрузки и выходами фазных токов , а также выходом скорости (которую мы далее будем считать электрической, т.е. отличающейся от реальной механической в p раз).
Известно, что электрические величины трехфазной цепи (например, фазные токи) могут быть представлены во вращающейся со скоростью системе координат d и q как два ортогональных компонента :
где — угловое положение вращающейся системы координат.
Преобразование вида (1) может быть аналогично применено и для фазных напряжений Выражение (1) называется инвариантным по амплитуде преобразованием Парка [1] или dq0-преобразованием. Важно отметить, что при соответствующем выборе (при вращении системы координат синхронно с вращением вектора тока), величины становятся постоянными и при этом — амплитуда переменного тока.
Рассмотрим инверсную Г-модель двигателя с ориентацией потокосцепления ротора вдоль оси d синхронно вращающейся системы координат [2]. В пространстве состояний модель реализуется системой дифференциальных уравнений четвертого порядка:
где — токи статора во вращающейся системе dq-координат, — напряжения статора в системе dq-координат, — скорость вращения вала двигателя, — электромагнитный момент, развиваемый двигателем.
Параметры модели двигателя в (2) обозначены: — приведенное сопротивление ротора, — сопротивление статора, — приведенная индуктивность статора, — приведенная индуктивность намагничивания, — число пар полюсов, — момент инерции ротора и нагрузки.
Система dq-координат вращается с синхронной скоростью вращения двигателя:
Алгоритм векторного управления реализован в виде модели Simulink, показанной на рисунке 1.
Для упрощения отладки в модель включена возможность управления в скалярном (U/f) режиме, который является частным случаем векторного, в котором — определяет амплитуду выходного напряжения, а — уставка выходной частоты .
Входы модели:
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 — генерация для скалярного режима;
FOC — реализация регуляторов векторного алгоритма (4) и (5), а также инверсное преобразование (6) для генерации трехфазного напряжения;
Current sensors — преобразование измеренных значений тока к вращающейся системе координат, согласно (1);осредоточено в одном месте модели.
Slip calculation — вычисление скорости скольжения согласно (3) и первому уравнению в (2).
Центральной частью реализации является подсистема FOC, показанная на рисунке 2. В данном блоке векторное управление реализуется в точности так, как это было описано в предыдущем разделе.
С целью оптимизации, вычисление тригонометрических функций осредоточено в одном месте модели.
Для верификации реализованного алгоритма была создана модель, в которой описанный векторный регулятор соединен с моделью асинхронного электродвигателя из библиотеки SimPowerSystems. Результаты моделирования полностью подтверждают работоспособность алгоритма управления.
В качестве аппаратной платформы выбрана плата STM32F4DISCOVERY, процессор STM32F407 которой позволяет реализовывать сложные численные алгоритмы и содержит всю необходимую периферию. Фрагменты кода для генерации ШИМ и считывания инкрементального энкодера взяты из библиотеки STM32 FOC firwmare libraries v2.0 [3].
Для силового модуля был использован частотный преобразователь китайского производства. Он состоит из платы управления и платы ключей, соединяемых проводом-шлейфом. Плата STM32F4DISCOVERY была подключена вместо штатной платы управления.
В качестве датчиков тока использовались LEM HX03-P, сигнал с которых нормировался к интервалу 0 — 3 В с помощью операционного усилителя. Компенсация дрейфа нуля датчиков в микроконтроллере реализована с помощью скользящего среднего с интервалом 1 с для динамической калибровки нуля.
Задание скорости осуществляется с помощью переменного резистора, подключенного к микроконтроллеру. Для отображения числовой информации к микроконтроллеру также был подключен ЖКИ индикатор 20х4 типа AV2040.
Схема задействованных выводов микроконтроллера и их подключение представлена на рисунке 3.
Модель Simuink алгоритма векторного управления была транслирована в код на языке Си с помощью встроенного в MATALB средства Embedded Coder [4]. В качестве стратегии интегрирования выбрана одношаговая схема (ode1). Вся арифметика алгоритма реализована с плавающей точкой одинарной точности (float), которую аппаратно поддерживает микроконтроллер STM32F4. Ядро процессора работает на частоте 168 МГц. Время расчета одного цикла алгоритма — 150 мкс. Частота дискретизации алгоритма была выбрана в 500 мкс.
В качестве компилятора исходного кода использовался KEIL uVision 4.70. Откомпилированная программа занимает 25 кБайт памяти.
Для отладки внутренние сигналы алгоритма управления выводились на два встроенных в микроконтроллер ЦАП.
Для испытаний был выбран двигатель DRS71S4 производства SEW Eurodrive, для которого известны параметры =11.6 Ом, =987 мкГн. Для тестирования механической нагрузки, шкив двигателя был соединен с управляемым серводвигателем, создающим постоянный тормозящий момент 2 Нм. Отработка профиля скорости показана на рисунке 5.
В результате испытаний было установлено, что алгоритм векторного управления может быть реализован с помощью автоматической генерации кода из модели в Simulink. Возможностей и быстродействия микроконтроллера STM32F4 достаточно для выполнения алгоритма векторного управления с вычислениями с плавающей точкой. Наличие встроенного в микроконтроллер АЦП, а также интерфейса с энкодером позволяет создать компактное и дешевое устройство для промышленной реализации частотного преобразователя, а также в исследовательских целях для разработки новых алгоритмов управления.