Частотник своими руками на stm32

Обновлено: 05.07.2024

Одним из самых эффективных способов сократить до минимума сроки проектирования является применение готовых решений. В качестве них могут выступать не только модули, опорные разработки или наборы, но даже интегральные схемы, если в их архитектуре учтены требования конкретных применений и производитель оказывает всестороннюю техническую поддержку, направленную на популяризацию его продукции в этих применениях. В случае семейства микроконтроллеров STM32 их производитель, STMicroelectronics, сделал ставку на такие применения:

  • устройства управления электродвигателями;
  • эргономичные устройства личного пользования;
  • управляющая электроника для бытового электрооборудования, отвечающего стандарту IEC60335.

Микроконтроллеры STM32 в устройствах управления электродвигателями

Ввиду высокой популярности таких типов электродвигателей, как синхронный двигатель на постоянных магнитах (СДПМ) и асинхронный двигатель (АД), создатели МК STM32 позаботились о максимальном соответствии их архитектуры требованиям современных систем управления данными двигателями. Собственно популярность этих двигателей обусловлена их конструкцией — в ней отсутствует щеточный узел, а, следовательно, их работа, при условии выполнения электронной системой управления всех необходимых защитных функций, будет практически безотказной.

К числу особенностей микроконтроллеров STM32, которые важны для реализации систем управления электродвигателем, относятся:

  • высокоэффективная архитектура ЦПУ, которая позволяет за небольшое время выполнять сложные алгоритмы управления (например, для выполнения алгоритма векторного управления 3-фазным СДПМ с косвенной оценкой положения ротора требуется до 24 мкс);
  • многофункциональный таймер для генерации ШИМ-сигналов;

— шесть выходов;

— генерация паузы неперекрытия (исключает протекание кратковременного сквозного тока в двухтактном силовом каскаде);

— генерация прямоугольных импульсов с выравниванием по фронту или по центру;

— возможность совместной работы с АЦП;

  • 12-битный АЦП с двумя УВХ для одновременной выборки и запоминания двух аналоговых сигналов и их последующей поочередной оцифровки (время преобразования 1 мкс);
  • таймеры для обработки сигналов датчиков скорости/положения;
  • совместимость архитектуры МК с требованиями стандарта EN/IEC60335-1 (более детально об этом пойдет речь в последней части статьи).

Функциональная схема устройства векторного управления трехфазным СДПМ/АД на основе МК STM32 показана на рисунке 1 [1].

Рис. 1. Функциональная схема устройства векторного управления электродвигателем на основе МК STM32

На ней зеленым цветом выделены аппаратные блоки МК STM32, а оранжевым — программные блоки, реализующие алгоритмы векторного управления. Однако производитель и здесь позаботился об облегчении жизни разработчика и предлагает бесплатные библиотеки векторного управления СДПМ/АД, причем с поддержкой различных способов определения положения ротора: без датчиков (по обратной ЭДС), с помощью датчиков Холла или энкодера. Данная функция имеет отношение только к СДПМ. В случае АД оценивается только частота вращения с помощью тахометра. Также поддерживаются различные способы контроля тока: шунтовой или с помощью изолированных датчиков. Оценить возможности этой библиотеки программ можно в составе специального оценочного набора STM3210B-MCKIT. В состоянии поставки данный набор полностью готов к совместной работе с электродвигателем (входит в комплект): для этого достаточно подать напряжение питания. Кроме того, некоторые платы набора можно использовать как готовую платформу для управления различными типами СДПМ/АД. Необходимые перенастройки можно сделать через специально предусмотренный графический пользовательский интерфейс на основе ЖКИ или путем внесения изменений во входящие в комплект исходные коды. В документации на STM3210B-MCKIT также можно найти готовые схемные решения и рекомендации по выбору параметров узлов сопряжения микроконтроллера с внешними сигналами.

Таким образом, микроконтроллеры STM32 с учетом доступности бесплатной библиотеки векторного управления СДПМ/АД можно считать завершенной платформой для реализации высококачественных и высоконадежных регулируемых электроприводов для различных применений. К ним можно отнести бытовые (стиральные машины, посудомоечные машины, холодильники, кондиционеры и др.) и промышленные (электромобили, приводы малой и средней мощности, офисная автоматика, вентиляторы, исполнительные механизмы HVAC-систем, насосы, компрессоры, торговое оборудование, банкоматы и др.) применения.

STM32 Primer — готовая платформа для создания эргономичных устройств личного пользования

Внешний вид STM32 Primer с указанием составляющих его основу компонентов показан на рисунке 2.

Рис. 2. Внешний вид STM32 Primer

Он выполнен в эргономичном пластиковом корпусе кольцевой формы с разборной конструкцией. На лицевой стороне установлены цветной графический дисплей (в центре) и кнопка, которая может использоваться для включения/отключения, а также для активизации команд меню графического пользовательского интерфейса (ГПИ). Кроме того, на лицевой стороне сквозь полупрозрачный пластик видны два светодиодных индикатора красного и зеленого цветов свечения. На тыльной стороне имеются два разъема USB-портов (отладочный и рабочий) и, кроме того, под пластиковой крышкой находятся звуковой излучатель, два NiMH-аккумулятора (номинальное напряжение 2,4 В), посадочные места для монтажа IrDA-трансивера и контактные ламели, связанные с неиспользуемыми выводами МК.

Основой STM32 Primer является МК из семейства STM32: STM32F103B6. Он выполнен на основе нового 32-битного ядра ARM Cortex-M3 и характеризуется следующими возможностями:

  • Производительность ЦПУ 90 DMIPS на тактовой частоте 72 МГц (1,25 DMIPS/МГц);
  • 128 кБ флэш-памяти, 20 кбайт статического ОЗУ;
  • Отладочные интерфейсы SWD и JTAG;
  • Быстродействующий ввод-вывод (до 80 линий ввода-вывода), АЦП, ЦАП;
  • Встроенные коммуникационные интерфейсы: USB 2.0, CAN, USART, SPI, I2C, LIN;
  • Несколько таймеров, сторожевые таймеры, генерация ШИМ-сигналов, системный таймер.

Для отображения информации у STM32 Primer предусмотрен цветной графический дисплей, выполненный на основе ЖК-модуля PZG15BW-SCLW-1 (Palm Technology) с разрешающей способностью 128х128 точек и возможностью отображения 64 тыс. цветов, а также на основе контроллера ST7637 (Sitronix).

Система электропитания. В состоянии поставки STM32 Primer настроен на питание от любого из USB-портов. Чтобы включить в работу встроенные аккумуляторы, необходимо снять крышку и установить перемычку JP1. С этого момента после подключения USB-портов будет также осуществляться заряд аккумуляторов. Для полного перезаряда аккумуляторов необходимо около 16 часов, а длительность работы от полностью зараженных аккумуляторов составит около 2 часов. Продлить это время можно снижением активности использования STM32 Primer или снижением яркости подсветки ЖКИ.

Операционная система CircleOS. Еще одним преимуществом STM32 Primer является то, что он выполнен на основе собственной мини-операционной системы CircleOS. Ее использование существенно ускорит создание собственных приложений, так как CircleOS поддерживает множество функций, в том числе графические функции, функции управления звуковым излучателем и светодиодами, функции считывания состояния кнопки и обработки данных датчика ускорения, функции меню пользователя и др. Кроме того, CircleOS имеет возможность загрузки нескольких независимых приложений. После запуска любого из этих приложений ему выделяется весь незанятый ОС объем оперативной памяти (16 кбайт).

Таким образом, STM32 Primer можно рассматривать как завершенную аппаратно-программную платформу для создания эргономичных приборов личного пользования с возможностями организации пользовательского меню, навигации по нему и дополнения новыми приложениями. Для этого у STM32 Primer предусмотрена аппаратная возможность подключения внешней платы расширения через специальные контактные ламели, а также программная возможность (поддерживается CircleOS) загрузки и запуска программных приложений пользователя.

Микроконтроллеры STM32 для реализации устройств, соответствующих классу В по стандарту IEC60335

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

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

  • Регистры ЦПУ;
  • Счетчик программ ЦПУ;
  • Обработка и выполнение прерываний;
  • Синхронизация;
  • Все типы запоминающих устройств;
  • Адресация (внутренняя и внешняя);
  • Внутренние маршруты передачи данных;
  • Связь с внешними устройствами;
  • Таймеры;
  • Устройства ввода-вывода;
  • АЦП и ЦАП;
  • Аналоговые мультиплексоры.

Использование микроконтроллеров STM32 существенно облегчит сертификацию оборудования класса В на соответствие указанным стандартам, т.к. многие их положения учтены на уровне архитектуры [3]. Кроме того, компания ST по запросу на бесплатной основе также предлагает библиотеку подпрограмм самотестирования внутренних ресурсов МК STM32, таких как ОЗУ, флэш-память, внешняя синхронизация и ЦПУ. Более того, данная библиотека прошла процедуру сертификации в немецком институте электротехники, электроники и информатики (VDE). Таким образом, использование этой библиотеки не только упростит разработку продукции, но и ускорит ее сертификацию.

Особенности архитектуры микроконтроллеров STM32 в части соответствия стандарту МЭК 60335 отражены на рисунке 3 (pdf Class B, стр. 1). Здесь представлена система синхронизации и система контроля очередности выполнения программы на основе двух сторожевых таймеров. Один сторожевой таймер носит название оконного. Он синхронизируется системным сигналом синхронизации и предназначен для точной оценки временных характеристик выполняемых ветвей программы. На аппаратном уровне он реализован, как 7-битный циклический счетчик обратного счета. Данный сторожевой таймер генерирует сигнал сброса при выходе за пределы одной из двух границ (одна — фиксированная, другая — программируемая). Другой сторожевой таймер носит название независимого. Он синхронизируется отдельным встроенным низкочастотным генератором и отличается большей степенью автономности и защищенности. Благодаря работе от отдельного генератора он позволяет реагировать на сбои в основной системе синхронизации.

На рисунке 3 также показаны различные источники синхронизации и их соединение внутри кристалла МК.

Рис. 3. В микроконтроллеры STM32 интегрированы отказоустойчивая система синхронизации и два сторожевых таймера

Важно обратить внимание, что часы реального времени могут синхронизироваться от внутреннего НЧ-генератора RC-типа. Благодаря этому их можно использовать для контроля отклонения частоты внешней синхронизации.

Наконец, некоторые процедуры из упомянутой выше библиотеки программ используют встроенный в МК STM32 блок арифметики CRC32, который позволяет существенно ускорить алгоритмы тестирования запоминающих устройств без существенного ухудшения реально-временных характеристик микроконтроллера.

Таким образом, особенности архитектуры микроконтроллеров STM32 с учетом доступной программной библиотеки позволяют рассматривать данные МК как готовую платформу для создания электронных устройств управления бытовых электроприборов, относящихся к классу В стандарта IEC60335. Их применение позволит сократить не только затраты времени и средств на создание IEC60335-совместимых схемных решений и ПО, но и на прохождение процедуры сертфикации, т.к. предлагаемая программная библиотека уже прошла сертификацию в институте VDE.

Литература

1. Motor control with STM32 32-bit ARM®-based MCU//Brochure, STMicroelectronics, 2007. — 8 p.

Но что делать, когда подходящего контроллера не существует, например, когда силовая часть преобразователя выполнена по необычной схеме, или когда она является стандартной, но функциональности существующих контроллеров недостаточно для конкретного приложения? Например, где найти готовый контроллер для импульсного стабилизатора переменного напряжения, описанного в [3]?

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

Одним из первых массовых устройств с полностью цифровыми контурами управления стали компьютерные источники бесперебойного питания, появившиеся в конце 1990-х годов. Однако в то время производительность недорогих контроллеров еще не позволяла полноценно управлять высокочастотными импульсными схемами, поэтому частота сигналов для управления силовыми транзисторами составляла всего 50 Гц, а их выходные напряжения имели форму прямоугольных импульсов (аппроксимированной синусоиды). С той поры многое поменялось, и сейчас почти все ведущие производители этого вида техники выпускают устройства с синусоидальными выходными напряжениями, формируемыми с помощью микроконтроллеров.

Рисунок 1. Пример цифрового контура управления платформы MIPAQ Pro [4].

В этой статье будут рассмотрены общие вопросы построения цифровых контуров управления на основе микроконтроллеров общего назначения. А в качестве примера будет рассмотрена схема управления импульсным преобразователем переменного напряжения [3, 5], реализованная на микроконтроллере семейства STM32 производства STMicroelectronics.

Общие особенности цифровых методов управления

Отличительной особенностью цифровых методов управления является минимальное количество аналоговых узлов, в большинстве случаев выполняющих лишь функцию интерфейса между существующей в физическом мире электрической схемой и ее виртуальной моделью. В общем случае, для построения цифрового контура управления необходим комплект аналоговых датчиков, формирующих на входах АЦП сигналы, пропорциональные реальным физическим параметрам: напряжению, току, температуре и т.п. Количество датчиков зависит от конкретной задачи и может быть разным. В самом простейшем случае, например, при реализации цифрового варианта метода управления по напряжению, достаточно лишь датчика выходного напряжения. Если же говорить о полноценном управлении силовою частью, тогда необходимо как минимум четыре датчика (Рисунок 2): для измерения входного и выходного напряжений, выходного тока и температуры ключевых компонентов системы.

Рисунок 2. Цифровой контур управления импульсным преобразователем.

Ключевым преимуществом такого подхода является исключительная гибкость. При использовании комплекта датчиков, как на схеме Рисунка 2, можно реализовать практически все методы управления, рассмотренные в [1, 2], причем со всеми сервисными функциями и защитами. А если учесть, что большинство современных микроконтроллеров имеет в своем составе как минимум один аппаратный интерфейс для обмена данными, то и реализовать в этом преобразователе функции удаленного управления, мониторинга или настройки тоже не составит технической сложности.

Эти преимущества, в свое время, и определили выбор такого подхода к реализации управления стабилизатором GF-9000 [5], ведь разработка на дискретных компонентах всего, что было в конечном итоге реализовано программно, привела бы к значительному усложнению сборки и настройки этого аппарата.

Особенности стабилизатора GF-9000

Внешний вид стабилизатора GF-9000 (слева) и внутреннее устройство его прототипа (справа).
Внешний вид стабилизатора GF-9000 (слева) и внутреннее устройство его прототипа (справа).
Рисунок 3. Внешний вид стабилизатора GF-9000 (слева) и внутреннее
устройство его прототипа (справа).

Силовая часть стабилизатора GOFER-9000 (Рисунок 4) состоит из двух одинаковых каналов, работающих в многофазном режиме. Регулирование напряжения осуществляется методом вольтодобавки или вольтовычитания – в зависимости от соотношения напряжений на входе и выходе (Рисунок 5). Преобразование электрической энергии в каждом силовом канале производится двумя индуктивными приборами: трансформатором и дросселем. Такой подход к построению силовой части позволяет максимально уменьшить размеры и вес магнитопроводов индуктивных элементов [6]. В качестве силовых ключей используются высоковольтные IGBT с интегрированными антипараллельными диодами (IRG4PH40UD и IRG4PС50UD) производства компании International Rectifier, ныне ставшей частью Infineon. Частота работы трансформатора и накопительного дросселя равна, соответственно, 20 кГц и 40 кГц. Использование многофазного принципа преобразования позволило одновременно увеличить частоту пульсаций тока во входных и выходных цепях и уменьшить их амплитуду, что, свою очередь, дало возможность упростить входные и выходные сглаживающие фильтры, работающие на частоте 80 кГц.

Рисунок 4. Силовая часть стабилизатора GF-9000.
Рисунок 5. Принцип регулировки напряжения стабилизатора GF-9000.

Основой схемы управления является микроконтроллер STM32F103RBT6 с ядром, работающим на частоте 72 МГц (Рисунок 6). Датчики входного и выходного напряжений реализованы на основе 50-герцовых понижающих трансформаторов с возможностью подстройки коэффициента передачи с помощью подстроечных резисторов. В качестве измерителя выходного тока используется датчик Холла ACS756SCA-100B. Температура транзисторов измеряется с помощью двух терморезисторов – по одному в каждом канале. В системе присутствует также датчик балансировки на основе трансформатора тока, предназначенный для контроля равномерного распределения нагрузки между силовыми каналами. Первичные обмотки этого трансформатора образованы двумя проводами, размещенными в окне трансформатора таким образом, чтобы магнитные поля, создаваемые их токами, взаимно компенсировались. При неравномерной нагрузке возникает сигнал рассогласования, который снимается с вторичной обмотки трансформатора, оцифровывается и обрабатывается программой.

Рисунок 6. Схема управления стабилизатора GF-9000.

Общая структура программного обеспечения

В аналоговых схемах процессы во всех узлах происходят параллельно. В одноядерных цифровых микроконтроллерах в каждый момент времени может выполняться только одна арифметико-логическая операция. Это заставляет четко делить программный код по уровням приоритетов выполнения. В общем случае, все операции, выполняемые ядром, можно разделить на три категории (Рисунок 7):

  • операции, требующие немедленного выполнения;
  • операции, требующие максимально быстрого выполнения;
  • операции, выполняемые в фоновом режиме.

Рисунок 7. Упрощенный алгоритм программного обеспечения.

Из-за этого в прошивке стабилизатора были использованы только прерывания от таймеров, в обработчиках которых выполнялся код, формирующий сигналы управления силовыми транзисторами (к сожалению, специфика силовой части не позволяла их формировать только аппаратно – каждый таймер приходилось регулярно перенастраивать). Все остальные события (завершение оцифровки, прием/передача байта данных по UART и т.п.) определялись в основном потоке программы путем проверки соответствующих флагов, но, самое главное, только тогда, когда отсутствовали более приоритетные задачи.

К операциям, требующим максимально быстрого выполнения, относится, в первую очередь, код, отвечающий за защиту преобразователя и нагрузки. Для силовой части стабилизатора и оборудования, подключенного к его выходу, самым опасным является превышение мгновенных значений напряжений и тока. Например, при обрыве нулевого провода действующее значение входного напряжения в сети может увеличиться до 400 В (амплитудное – до 570 В). Попытка уменьшить его до 230 В, скорее всего, приведет к пробою силовых транзисторов, поэтому при обнаружении высокого напряжения на входе силовую часть нужно отключить. Это необходимо сделать как можно быстрее, но при этом задержка в несколько десятков и даже сотен микросекунд вполне допустима.

Все остальные операции должны выполняться при наличии свободного процессорного времени. Их также можно разделить по уровням приоритета, поскольку среди них есть операции, которые можно выполнить в любое время, например, формирование пакета данных для передачи по UART, и такие, которые нужно выполнить в определенное время. К операциям, зависящим от времени, например, относится код, выполняемый в начале периода сетевого напряжения (расчет действующих значений напряжений и токов, защита от перегрузки по току и т.п.).

Таким образом, общий алгоритм программного обеспечения получается следующим (Рисунок 7). Сразу после сброса микроконтроллера выполняется блок инициализации, в котором происходит настройка периферийных модулей микроконтроллера и начальная инициализация переменных. В конце этого блока, как обычно, происходит включение прерываний, и программа переходит в основной цикл.

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

Список функций, доступных в аварийном цикле, зависит от конкретной задачи. Например, в стабилизаторе GOFER-9000 при возникновении аварии продолжает поддерживаться обмен данными по UART, что позволяет определить причину отказа. В общем случае аварийный цикл не является обязательным – соответствующие блокировки можно достаточно просто реализовать и в основном цикле. Тут уже все зависит от решения и настроения программиста.

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

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

Особенности использования АЦП

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

Микроконтроллер STM32F103RBT6 имеет два АЦП, каждый из которых поддерживает до четырех инжектированных каналов. А в схеме управления стабилизатором есть семь сигналов, требующих оцифровки (входное и выходное напряжение, выходной ток, два датчика температуры, сигнал балансировки и опорное напряжение). Таким образом, в микроконтроллере STM32F103RBT6 были задействованы семь из восьми инжектированных каналов АЦП. При максимальной скорости оцифровки общее время, необходимое для обработки четырех сигналов, равно чуть меньше 25 мкс. Это позволило запускать инжектированные преобразования двух АЦП аппаратно – с помощью одного из таймеров, работающих на частоте 40 кГц. В итоге при использовании микроконтроллеров STM32 регулярную оцифровку семи входных сигналов удалось реализовать без затрат процессорного времени, за исключением времени выполнения кода инициализации, проводимой один раз после сброса микроконтроллера.

Контроль времени выполнения программы

Для исключения этого в программу добавлен модуль контроля времени выполнения программного кода (Рисунок 8), основным элементом которого является счетчик прерываний, инициируемый при запуске программы нулевым значением. В начале основного цикла происходит проверка значений этой переменной, и пока она равна нулю, основной поток приостанавливается до тех пор, пока ситуация не изменится. Счетчик прерываний увеличивается на единицу в обработчике прерываний таймера, запускающего АЦП на преобразование. Это значит, что в этот момент времени АЦП завершили оцифровку всех инжектированных каналов, и сейчас в их выходных регистрах находятся самые свежие данные о состоянии входных сигналов (за исключением самого первого прохода, когда оцифровка еще не проводилась).

Рисунок 8. Алгоритм контроля скорости выполнения программного кода.

Ситуация не будет критической, даже если время работы некоторых итераций основного цикла будет превышать 25 мкс (Рисунок 9б). В этом случае пропуска данных не будет, поскольку они все равно копируются из регистров АЦП во временные переменные. Самое главное в этом случае, чтобы средняя длительность итераций основного цикла была меньше 25 мкс. Тогда ядро, хоть и с некоторой задержкой, но все же будет успевать обрабатывать данные.

Рисунок 9. Принцип работы модуля самоконтроля.

Но если суммарная длительность двух соседних итераций превысит 50 мкс, то данные будут утеряны. В этом случае значение счетчика прерываний станет больше единицы, и программа перейдет в аварийный цикл (Рисунок 9в).


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

Borisevich Aleksey Valerievich 1 , Omelchenko Nikita Vladimirovich 2
1 St. Petersburg State Polytechnical University, Ph.D, Associate Professor
2 Protosensor ltd., Engineer


Abstract
In this paper the implementation of field-oriented control (FOC) for three-phase induction motor is considered. It is shown that the algorithm FOC control can be implemented with a straightforward automatic translation from Simulink model to C source code, with subsequent compilation and execution at STM32F4Discovery as target board.

1. Введение

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

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

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

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

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

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

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

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

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

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

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

1.2 Векторное управление с ориентацией по полю

Метод векторного управления с ориентацией системы координат полю ротора (field-oriented control, FOC) можно резюмировать следующим образом.

Измеряемыми величинами являются фазные токи статора и скорость вращения вала . Измеренные значения токов преобразуются с помощью (1) в постоянные . Для такого преобразования необходимо знать синхронную скорость , которая зависит от измеренной скорости и скольжения. Таким образом, реализация векторного управления содержит в себе блок вычисления по соотношению (3) и первому уравнению в (2). Важно заметить, что вычисление использует значение потокосцепления , которое оценивается на основе модели двигателя (2). Отсюда, важным является знание параметров двигателя .

Векторное управление для стабилизации скорости вращения двигателя состоит их трех ПИ-регуляторов, два из которых предназначены для поддержания токов статора. Обозначим — уставки соответствующих токов статора. Из второго и третьего уравнения в (2) видно, что в первом приближении динамика токов статора относительно напряжений может быть представлена как система первого порядка с возмущениями, вызванными противо-ЭДС и взаимозависимостью токов.

Динамика ПИ-регуляторов может быть записана обычным образом

При соответствующем выборе коэффициентов ПИ-регуляторов возможна достаточно точная регулировка токов и достижение . В таком случае, можно записать сокращенную модель двигателя

Заметим, что — это уставка тока намагничивания, которая определяется пользователем, обычно в процентах от номинального тока. Значение устанавливается ПИ-регулятором, обеспечивающим стабилизацию скорости :

Выходы ПИ-регуляторов (4) — это напряжения статора, которые подаются непосредственно на двигатель после обратного преобразования координат:

2. Модель в Simulink

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



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

Для упрощения отладки в модель включена возможность управления в скалярном (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. В данном блоке векторное управление реализуется в точности так, как это было описано в предыдущем разделе.



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

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

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

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

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

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

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

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

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



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

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

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

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



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

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



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

Заключение

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


© Если вы обнаружили нарушение авторских или смежных прав, пожалуйста, незамедлительно сообщите нам об этом по электронной почте или через форму обратной связи.

Связь с автором (комментарии/рецензии к статье)

Оставить комментарий

Вы должны авторизоваться, чтобы оставить комментарий.


Слушать

Загрузил: Радейка ТВ

Длительность: 1 мин и 30 сек

Битрейт: 192 Kbps

Cлушайте онлайн и cкачивайте песню Частотник Своими Руками На Stm32 Часть 1 размером 1.97 MB и длительностью 1 мин и 30 сек в формате mp3.

Похожие песни

Самодельный Частотник На 5Квт За 3 5 4 Тыс Руб

Cool Idea From The Old Fire Extinguisher

Самодельный Частотник Для 1К62 Финал

Схема Зарядное Устройство Для Автомобильного Аккумулятора

Двигатель От Эпч 3 400Гц Подготовка К Запуску С Пилой На Частотнике

Металл Больше Не Нужен Теперь Есть Фибергласс Своими Руками В Домашних Условиях

Тепловой Насос Вода Вода Продолжение

Самодельный Наждак Точило Из Двигателя От Стиральной Машины

Частотник Своими Руками С Stm32 На Stm8 Часть 2

Графен В Бетоне Уже Сейчас Производит Революцию В Строительстве

Как Из Однофазной Сети Сделать Трехфазную Фазный Преобразователь

Самодельный Частотник Для Асинхронного Двигателя На Stm32F Часть3

Инвертор 36В 200 Герц Три Фазы

Нагревательный Элемент Для Паяльника Своими Руками

Как Проверить Любой Шим Pwm Контроллер

Частотник За 70 Доларов Обманывают Ли Китайцы

Новый Двигатель Наса Сможет Двигаться Почти Со Скоростью Света

Частотник Частотный Преобразователь 220 380 Регулятор Оборотов Электродвигателя

Чпу Своими Руками На 608 Подшипниках Cnc On 608 Bearings

Слушают

Группа Звезда Лезгинские Песни

Sina Postacı Atilla Khan Remix

Хит Шансон Блатной Хит

Gulshoda Mp3 Skachat

Як Була Я Молода То Була Я Резва

Miyagi X Andy Panda X Santiz Type Beat Whales

Howl S Moving Castle Theme Violin

Infinity Mix Best Deep House Vocal Nu Disco Winter 2021

Цыганская Песня Никому Я Тебя Не Отдам

Ичимлик Хакида Маруза

Ali Mola Ali Mola Ali Dam Dam

Yuragim Talpinadi Sen Tomon

Сборник Музыки Для Китайского Фитнеса Живота

Morgenshtern Домофон Remix

Скачивают

Walt Disney Pictures Pixar Animation Studios 2010

Blind Melon Holyman

Booma Video Mix

Частотник Своими Руками На Stm32 Часть 1

They Re Not Dolls Quickie Mini 200

Последний Звонок И Выпускной Вечер 2013 Г 9 Д Класс 76 Школа Пермь

Франц Тест Все Его Хотят А Стоит Ли Empires Puzzles Empirespuzzles

Шоколатопита Шоколадный Пирог Из Греции

The Mandalorian Pinball Official Game Trailer

Vlog Food Diary Gewichtszunahme Meine Muskelaufbauphase Booty Workout

Janusz Pindera O Walce Adamek Kliczko

Libra Tarot Reading This Is Intense Final Endings Ride The Storm Before The Golden Gift Arrives

Читайте также: