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


PDF версия

В статье обсуждаются преимущества и принципы построения системы управления электроприводом, а также особенности маршрута проектирования системы с применением DSP-алгоритмов на базе FPGA. Проведен анализ использования ресурсов и быстродействия FPGA при реализации алгоритма управления с ориентацией по полю. Статья представляет собой перевод [1].

Введение

Считается, что электродвигатели расходуют более двух третей всей энергии, потребляемой технологической линией производственного предприятия. Поэтому для экономии электроэнергии на предприятии крайне важно, чтобы оборудование с приводом от двигателей было оптимизировано по энергопотреблению. Использование электроприводов с переменной скоростью вращения в системах с приводом от двигателя значительное повышает эффективность, что непосредственно влияет на экономию энергии, но требует сложных алгоритмов управления.
Как правило, в системах приводов с переменной скоростью вращения применяются серийно выпускаемые микроконтроллеры или цифровые сигнальные процессоры для обработки и управления, которые контролируют нагрузку, а также непосредственно управляют крутящим моментом, частотой вращения, положением ротора и другими параметрами электропривода. Однако возможности этих устройств ограничены в том, что касается масштабируемости и вычислительной мощности, необходимой для обработки усложняющихся алгоритмов поддержки многокоординатных устройств. Контроллеры двигателей необходимо объединять в общую сеть системы автоматизации предприятия, но микроконтроллеры и цифровые сигнальные процессоры обладают недостаточной гибкостью для поддержки широкого набора промышленных сетевых стандартов.
В настоящее время разработчики все чаще пытаются применять FPGA для построения систем управления электроприводов с переменной скоростью вращения последнего поколения, учитывая их преимущества в гибкости и функциональных возможностей, а также способность интегрирования полной системы в одном устройстве и использования удобного маршрута проектирования. Однако многие специалисты в области разработки систем управления двигателями обладают либо опытом программирования, либо создания DSP-алгоритмов, но не знакомы с проектированием FPGA-системы на основе генерации RTL-кода.
Для преодоления такого разрыва были разработаны методики проектирования на базе моделей, например такие, которые используются в средствах разработки MATLAB/Simulink. В сочетании с блочными инструментами разработки, например DSP Builder Advanced Blockset компании Altera, DSP-разработчики получили возможность работать в знакомой им среде MATLAB и автоматически генерировать оптимизированный RTL-код. Инструмент DSP Builder способен разделять во времени такие логические операторы как умножители и сумматоры и поддерживать арифметику с плавающей и фиксированной запятой непосредственно в аппаратных средствах.
Другим важным преимуществом FPGA является то, что эти устройства могут интегрировать большинство блоков системы управления двигателем благодаря своей способности параллельно обрабатывать цепи управления и организовывать работу системы (см. рис. 1). Встроенные процессоры, например NIOS II (32-разрядный программный RISC-процессор) компании Altera, могут управлять различными портами ввода/вывода, обеспечивать фильтрацию и сопряжение или даже реализовывать какой-либо детерминистский протокол промышленного стандарта Ethernet, например, EtherCAT или PROFINET. С другой стороны, гибкие DSP-блоки в FPGA могут обрабатывать жестко синхронизируемые алгоритмы управления двигателями с помощью блоков вычислений с фиксированной и плавающей запятой, что позволяет легко осуществлять операции с применением интенсивных вычислений, например, алгоритмы управления с ориентацией поля (Field Oriented Control, FOC)1.

 

Рис 1. Интегрированное решение для управления двигателем на базе FPGA в промышленном приложении

 

Преимущества FPGA при реализации DSP-алгоритмов

Применение FPGA обеспечивает следующий ряд эксплуатационных преимуществ.
– Более высокая пропускная способность и скорость обработки благодаря использованию параллельного принципа организации аппаратных средств FPGA и при масштабировании до устройства большей емкости.
– Меньшая задержка управления благодаря аппаратному ускорению заданий, которые прежде были реализованы программным способом, и прямому сопряжению алгоритмов цепи управления с интерфейсами периферии (АЦП, ШИМ, кодовыми датчиками положения и др.), которые интегрированы в одно устройство.
– Постоянная (и потому прогнозируемая) задержка работы алгоритмов, реализованных на аппаратном уровне. Задержки при программной реализации алгоритма трудно прогнозируемы и могут вызывать проблемы при работе в режиме реального времени.
– Высокоуровневый синтез проекта из средства Simulink напрямую в FPGA с использованием DSP Builder не требует от разработчика алгоритма знаний в области HDL.
– Использование функции свертки позволяет найти оптимальное соотношение между задержками, пропускной способностью и используемыми ресурсами.
– Поддержка арифметики с плавающей запятой переменной точности и с фиксированной запятой позволяет оптимизировать алгоритм.

Портирование С-кода на платформу FPGA

Разработчики могут переносить приложения в FPGA, используя существующий код на C, который портирован во встроенный процессор Nios II. Этот код профилируется по узким местам, а FPGA можно загрузить ресурсоемкими задачами или заданиями реального времени, что освобождает процессор для решения других задач. Разработчики могут разгружать функции путем создания написанных вручную пользовательских RTL-команд или генерировать аппаратные DSP-ускорители с помощью DSP Builder.
Приступая к новым проектам, разработчики могут использовать Simulink для моделирования полной системы с помощью блоков, разделяемых между программными средствами, аппаратными DSP-ускорителями и IP-блоками RTL-кода (интерфейсами периферии и т.д.).

Средство разработки DSP Builder Advanced Blockset

Инструмент DSP Builder Advanced Blockset добавляет специализированные библиотеки Simulink в среду разработки MATLAB, которая позволяет быстро и просто реализовывать DSP-проекты. Усовершенствованный набор блоков основан на технологии высокоуровневого синтеза, которая преобразует высокоуровневый список соединений в конвейеризованные аппаратные средства для целевой FPGA, работающей на заданной тактовой частоте. DSP Builder описывает аппаратные средства в виде VHDL-текста с использованием скриптов, интегрированных с программным обеспечением Quartus II и симулятором ModelSim.
Если системная тактовая частота превышает частоту передачи данных или частоту выборки, имеется вероятность того, что аппаратный блок, например умножитель, подвергнет повторной обработке множественные данные. В DSP Builder отношение тактовой частоты к частоте выборки называется коэффициентом свертки (folding factor). При использовании свертки в DSP Builder множественные точки данных могут выбирать совместно используемый аппаратный блок, что обеспечивает экономию ресурсов.

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

Система управления с ориентацией по полю должна контролировать синусоидальный 3-фазный ток двигателя в режиме реального времени для создания равномерно вращающегося магнитного поля, причем частота вращения соответствует частоте синусоиды. В данном методе контролируется амплитуда вектора тока, который отклонен на 90° относительно оси магнитного потока ротора (квадратурный ток), что позволяет управлять крутящим моментом, сохраняя при этом на нулевом уровне компонент «прямого» тока (0°).
Данное решение также включает цепи пропорционально-интегрального (ПИ) управления положением и скоростью, что позволяет контролировать скорость вращения и угол поворота ротора. Интерфейсный IP-блок, которым необходимо дополнить проект (см. рис. 2), можно легко оттранслировать с помощью инструмента SOPC Builder компании Altera.
В типовом контроллере с ориентацией по полю частота выборки на входе составляет 10—100 Квыб./с, а тактовая частота FPGA находится в пределах 50—100 МГц. При частоте 100 Квыб./с новая выборка должна быть обработана менее чем за 10 мкс. Сохранение величины этой задержки постоянной и ее минимизация позволяют повысить скорость работы алгоритма управления.

 

Рис. 2. Реализация алгоритма управления с ориентацией по полю

После моделирования данного алгоритма в Simulink путем использования арифметики с плавающей запятой одинарной точности и проверки его производительности было сгенерировано аппаратное обеспечение, и создан VHDL-список соединений для выбранного типа FPGA и тактовой частоты 100 МГц. Инструмент DSP Builder представил оценку задержки работы алгоритма и коэффициента использования ресурсов. Точная величина коэффициента использования ресурсов была получена после компилирования проекта в программном обеспечении Quartus II.
Для реализации данного проекта подходит арифметика с фиксированной запятой, однако использование вычислений с плавающей запятой дает разработчикам немало преимуществ, например:
– предотвращает появление переполнений и проблем с масштабированием, тем самым снижая время проектирования;
– достигается высокая производительность благодаря большей численной устойчивости;
– обеспечивается потенциально более высокая скорость реакции цепи управления при более широком динамическом диапазоне.
FPGA и инструменты разработки от Altera поддерживают решения как с фиксированной, так и с плавающей запятой.
По умолчанию, DSP Builder создает полностью конвейеризованное представление проекта, при котором в каждом тактовом цикле возможно считывание нового значения на входе. Разработчики сравнили результаты, полученные для высокопроизводительной конфигурации и для свернутой конфигурации (см. табл. 1 и рис. 3). Кроме того, было проведено сравнение результатов реализации одного и того же алгоритма на основе вычислений с фиксированной и плавающей запятыми (см. табл. 2 и рис. 4).

 

Рис. 3. Системные ресурсы и задержка

Рис. 4. Системные ресурсы и задержка при использовании вычислений с плавающей запятой и с фиксированной запятой

 

Таблица 1. Влияние свертки на используемые ресурсы и быстродействие

Характеристика

Без свертки

Коэффициент свертки 100x

Число блоков сложения/вычитания

22

1

Число блоков умножения

22

1

Число блоков вычисления синуса

4

1

Максимальная пропускная способность, Мвыб./с

100

1

 

Таблица 2. Сравнение вычислений с фиксированной и плавающей запятой

Характеристика

Фиксированная запятая (16 бит)

Фиксированная запятая (32 бита)

Плавающая запятая

Число использованных ЛЭ

2000

4000

12000

Число использованных 16-разрядных умножителей

4

5

28

Задержка, мкс

1,21

1,36

2,64

Примечание. Данные для арифметики с плавающей запятой получены при реализации функции вычисления синуса. При альтернативной реализации на основе вычислений с фиксированной запятой уменьшается число используемых ЛЭ на 4000, а умножителей — на 16000.

Из представленных данных видно, что после свертки существенно сократилось число операторов, что позволяет использовать намного менее ресурсоемкое устройство серии Cyclone IV при вполне допустимом для данного алгоритма увеличении задержки. Быстродействие цепи управления определяется задержкой алгоритма и временем установления. Как видно из полученных данных, свертка увеличивает задержку, однако при этом находится в пределах допустимых спецификацией значений.

Итоговые результаты

– Использование свертки:
— уменьшает число используемых логических элементов (ЛЭ) и умножителей, что позволяет применять FPGA существенно меньшей емкости;
— увеличивает задержку, величина которой, тем не менее, приемлема для данного алгоритма;
— уменьшает пропускную способность до 1 Мвыб./с, которая, однако, в 10 раз выше, чем требуется для реализации алгоритма управления с ориентацией по полю (100 Квыб./с);
— позволяет данному решению выполнять обработку до 10 каналов алгоритма управления с ориентацией по полю в режиме реального времени.
– Применение вычислений с плавающей и фиксированной запятыми (32 бита) обеспечивает примерно одинаковое использование ресурсов, однако задержка в случае вычислений с фиксированной запятой примерно в два раза меньше. Без применения свертки отмечается намного большая разница в использовании ресурсов для вычислений с плавающей и фиксированной запятыми.
– Уменьшение точности вычислений до 16 бит сокращает используемые ресурсы из-за более узкого канала данных.

Заключение

Современные микроконтроллеры или цифровые сигнальные процессоры обладают ограниченными возможностями для реализации контроллеров двигателей последнего поколения. На FPGA можно построить превосходную платформу для управления движением, которая обеспечивает:
гибкие возможности интеграции полной системы в одном устройстве;
масштабируемую функциональность, необходимую для обработки множественных каналов данных и поддержки вычислений с плавающей запятой высокой точности;
доступ ко встроенным процессорам, сетевым протоколам, периферийным IP-интерфейсам и системным решениям, которые обеспечивают быструю и простую интеграцию системы.
Однако многие разработчики не знакомы с применением FPGA для реализации DSP-приложений, поэтому важно создавать инструменты, которые повышают эффективность проектирования и сокращают время разработки. Компания Altera разработала такие наборы инструментов как SOPC Builder и DSP Builder, которые позволяют инженерам использовать преимущества обычного маршрута проектирования DSP-системы и быстро генерировать системы управления двигателем последнего поколения.

Литература
1. Kevin Smith. Implementing a flexible system optimize Motor Controller in an FPGA//www.altera.com.

_______________________

1 В русскоязычной литературе используется термин «векторное управление».

 

Выборг +7 81378 54653,

Москва +7 495 7881292

Санкт-Петербург +7 812 3216160,

Ульяновск +7 8422 256939

info@icgamma.ru, www.icgamma.ru

 

Оставьте отзыв

Ваш емейл адрес не будет опубликован. Обязательные поля отмечены *