Разработка программного обеспечения преобразователя частоты на базе технологии MexBIOS
Современный рынок преобразователей частоты широко представлен ведущими мировыми производителями. Основная интеллектуальная составляющая таких устройств сосредоточена во встроенном программном обеспечении микроконтроллера. Конечный потребитель таких устройств ориентирован лишь на использовании преобразователя частоты в виде черного ящика. Зачастую перед инженерами встает не разрешимая на первый взгляд задача – модифицировать интеллектуальную составляющую такого устройства под свои задачи. В этой ситуации, ввиду закрытого встроенного обеспечения, потребитель вынужден выполнить собственную разработку. Даже имея богатый опыт в разработке схемотехнических решений, потребитель неизбежно сталкивается с проблемой программной реализации алгоритмов управления электродвигателем. Отсутствие единой программной платформы для разработки встроенного обеспечения систем управления электродвигателями приводит к тому, что основная часть времени разработки тратится на конфигурирование микроконтроллера, создание вложенного меню, реализацию алгоритмов управления, как правило, на языке C/C++, защит и коммуникаций. Избежать такой длительной процедуры разработки позволяет применение технологии MexBIOS.
Технология MexBIOS базируется на предустанавливаемом в микроконтроллер ядре MexBIOS Kernel и среде разработки MexBIOS Development Studio, в которой создается программа управления. Архитектура MexBIOS показана на рисунке 1.
MexBIOS Development Studio представляет собой визуальную среду разработки и моделирования встроенного программного обеспечения систем управления электродвигателями. Изображение среды показано на рисунке 2. Используя блоки из палитры компонентов, собирается программа управления электродвигателем. Блоки представляют собой законченные функции управления электродвигателем. Созданная программа передается в предустановленный в микроконтроллер MexBIOS Kernel, где после перезагрузки микроконтроллер загружается на исполнение. Помимо среда MexBIOS Development Studio может быть запущена в режиме симуляции, где в качестве объекта управления может выступать модель электродвигателя что значительно ускоряет обычный процесс разработки программного обеспечения.
MexBIOS Kernel представляет собой исполняемое программное ядро, загружаемое в микроконтроллер. Обеспечивает конфигурирование регистров микроконтроллера, интерфейсов связи, работу с периферией микроконтроллера, содержит необходимый перечень предустановленных функций управления электродвигателем, логически не связанных между собой. Само по себе ядро MexBIOS Kernel не может быть запущено на исполнение без предварительной конфигурации функций управления электродвигателем. Для запуска системы управления электродвигателем потребителю необходимо загрузить MexBIOS Kernel в микроконтроллер, составить программу управления электродвигателем связав логически необходимые для этого функции из палитры компонентов среды MexBIOS Development Studio и загрузить конфигурацию программы в уже установленную среду MexBIOS Kernel. По окончании загрузки созданная программа запускается на исполнение.
Рассмотрим пример создания программы управления электродвигателем постоянного тока в среде MexBIOS на базе отладочного комплекта MCB-02 приведенного на рисунке 3 [1]. Он предназначен для разработки и тестирования программного обеспечения систем управления электродвигателем постоянного тока, синхронным и асинхронным и электродвигателями. В частности позволяет осуществлять управление координатами электропривода (ток, крутящий момент, скорость, положение), реализовывать защиты электродвигателя, управления технологическим процессом, телесигнализацию и телеуправление, поддерживает цифровые коммуникации.
Аппаратная реализация комплекта базируется на модульной архитектуре содержащей следующие элементы:
- процессорная плата (поддерживаются микроконтроллеры 1867ВЦ5Т производства ФГУП НИИ ЭТ, TMS320LF2406 и TMS320LF2812 производства Texas Instruments);
- интерфейсный модуль InterCard, осуществляющий связь микроконтроллера с силовой платой, устройствами верхнего уровня с помощью интерфейсов USB и RS232, гальванически изолированный ЦАП, буферы аналоговых сигналов для АЦП, ПЗУ, кнопки, семисегментный индикатор, интерфейс датчиков положения ротора двигателя;
- плата инвертора UniPower-02 построена на базе двух модулей IGBT-транзисторов PS21869P фирмы POWEREX. Каждый из модулей включает в себя трехфазный мост из шести транзисторов с обратными диодами, схему драйверов транзисторов и схему защит. На плате установлены датчики тока двух фаз электродвигателя, датчик тока на входе инвертора для защиты от короткого замыкания, датчик напряжения в звене постоянного тока, датчик температуры силового модуля;
- плата тормозного и зарядного резисторов UniPowerBrake-01.
Функциональная схема комплекта приведена на рисунке 4.
Встроенное программное обеспечение в системах Motion Control требует четкого распределения вычислительных ресурсов микроконтроллера на разных частотах. Из теории управления электроприводами известно, что алгоритмы расчета контура тока следует выносить на частоты от 5 до 10 кГц, контур скорости целесообразно рассчитывать на частоте от 500 до 2 кГц, а контур положения от 100 до 500 Гц [2, 3].
В среде MexBIOS Development Studio механизм распределения вычислительных ресурсов базируется на создании слоев и связи блоков программы с этими слоями (см. рис. 5).
В нашем примере имеется 2 слоя. Слой ISR_Main является базовым. Принадлежащие этому слою блоки исполняются на частоте 10 кГц. В данном примере на нем расположены блоки, выполняющие расчет контура тока, управляющие силовой частью отладочного комплекта и обработки сигнала АЦП. К базовому слою подключаются дополнительные слои с различными масштабными коэффициентами кратными 10 кГц. В частности подключен слой ISR_Speed исполняющийся на частоте 500 Гц. На нем размещаются блоки, реализующие контуры положения и скорости.
Базовая программа, содержащая три контура регулирования, располагается в поле DataFlow (см. рис. 6).
Она содержит блоки задания амплитуды Amp_Ref и частоты Freq_Ref генератора опорного сигнала контура положения расположенного в подсистеме QGEN_RECT. Блок Reset генерирует разрешение на сброс всех блоков присутствующих в программе в нулевое начальное состояние. Блок Power_En выполняет функции разрешения/запрета работы силового модуля.
Подсистема Drive Control, приведенная на рисунке 7. содержит три ПИД-регулятора регулятора: PID_Current – регулятор тока, PID_Speed – регулятор скорости, PID_Position – регулятор положения. Поскольку регуляторы должны быть рассчитаны каждый на своей частоте, то их необходимо поместить в соответствующий слой. После размещения блока в слой фон этого блока подсвечивается цветом выбранного слоя.
Помимо регуляторов в подсистеме расположены блоки типа OUT и подсистема Power. Блоки типа OUT выполняют связь сигналов с панелью Watch Window, где отображается состояние сигналов, а также могут быть сконфигурированы как осциллограф (см. рис. 2., блок Pos_OUT).
Блок Power содержит подсистему управления инвертором, приведенную на рисунке 8. В нее входят три управляющих сигнала. Задание по оси D, поступает с выхода регулятора тока. Задание по оси Q, является константой при управлении электродвигателем постоянного тока и равно нулю. А также задание частоты. Все эти сигналы поступают на вход преобразования Парка, блок IPARK. Далее выходной сигнал по осям Alpha, Beta поступает на преобразование Кларка, откуда выходят три управляющих сигнала для формирования ШИМ в блоке PWM. Поскольку описанная подсистема исполняется на максимальной частоте, то она целиком помещается на самый быстрый слой ISR_Main. Для управления разрешением/запретом работы силового модуля используются блоки дискретного ввода/вывода GPIO и GPIO1. Разрешение на работу силового модуля формируется при подаче через вход подсистемы Enable сигнала равного нулю.
Элементы программы, касающиеся обработки сигналов обратной связи вынесены в подсистему FeedBack, приведенную на рисунке 9. Рассмотрим ее подробно. В левом верхнем углу расположены блоки обработки сигналов с АЦП. Далее с выхода используемого канала блока ADC сигнал поступает на блок усиления GAIN, где сигнал масштабируется до требуемого уровня и далее через выход подсистемы на вход регулятора тока. Для отсутствия задержек в быстродействующем контуре тока блоки ADC и GAIN перенесены в слой ISR_Main.
Внизу подсистемы приведены блоки, отвечающие за обработку датчика положения и формирования сигнала обратной связи по скорости и положению. Изначально на аппаратном уровне сигнал опрашивается и контролируется по положению в блоке QEP. Для правильной работы в системе блок сконфигурирован согласно аппаратной реализации отладочного комплекта MCB-02 и параметрам инкрементного энкодера (число импульсов на оборот вала энкодера). На выходе блока QEP в канале Pos формируется абсолютное положение, выраженное в метках энкодера. Максимальное положение, которое может контролировать блок лежит в пределах от -231 до 231-1. Этот сигнал далее передается в контур положения. Для формирования скорости выход канала Pos подключается к входу блока SPEE_FR. Этот блок выполняет расчет скорости и передает сигнал обратной связи на контур скорости. Также как и регулятор скорости, блоки QEP и SPEED_FR находятся в общем слое ISR_Speed, что необходимо для получения качественного сигнала обратной связи.
Представленная программа реализует управление электродвигателем постоянного тока в следящем режиме. В качестве примера показан случай отработки ступенчатых управляющих воздействий по положению. Изменение во времени положения и скорости показано на рисунке 2. В частности монитор Blue отображает изменение положения, монитор Red отображает скорость электродвигателя при отработке заданного положения.
Рассмотренный подход к визуальному проектированию программного обеспечения позволяет упростить процесс разработки встроенного программного обеспечения на столько, что от разработчика не требуется глубоких навыков программирования. При этом время разработки приведенной трехконтурной следящей системы управления электродвигателем постоянного тока занимает не более одного дня, при условии, что в аппаратной части отсутствуют схемотехнические ошибки.
Применяемые в среде MexBIOS блоки ПИД-регуляторов, преобразования Парка, Кларка, SPEED_FR, PWM выполнены в соответствии с библиотекой IqDMC компании Texas Instruments.
Литература
- http://mechatronica-pro.com/ru/blog/
- Бабаков Н.А., Воронов А.А., Воронова А.А. Теория автоматического управления: Учеб. для вузов по спец. «Автоматика и телемеханика». В2 ч. Ч.1. Теория линейных систем автоматического управления. –М.: Высшая школа, 1986. – 367с.
- Бабаков Н.А., Воронов А.А., Воронова А.А. Теория автоматического управления: Учеб. для вузов по спец. «Автоматика и телемеханика». В 2 ч. Ч.2. Теория нелинейных и специальных систем автоматического управления. –М.: Высшая школа, 1986. – 367с.
- Куо Б. Теория и проектирование цифровых систем управления: Пер. с англ. –М.: Машиностроение, 1986. – 448с.