Аппаратно-программное разбиение алгоритма управления двигателем

Этот пример показывает, как смоделировать контроллер двигателя для устройств СК путем разбиения алгоритмов управления и калибровки между FPGA и процессором СоК.

Введение

Этот пример показывает, как разбить векторный контроллер (FOC) для синхронного двигателя с постоянными магнитами (PMSM) на однокристальное устройство. Следующая схема показывает концептуальный OC с обратной связью PMSM.

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

Первая модель в этом примере используется для поведенческой симуляции FOC с обратной связью с контроллером калибровки без разомкнутого контура для PMSM. Вторая модель показывает, как контроллер калибровки без разомкнутого контура, контроллер скорости с обратной связью и токовый контроллер с обратной связью могут быть разделены на устройства СоС с помощью SoC Blockset. Сравнение результатов симуляции между поведенческой и однокристальной моделями показывает, что ожидаемое поведение контроллера поддерживается.

Поведенческая модель

Структура верхнего уровня поведенческой модели показана ниже. Подсистема Объекта моделирует PMSM с нагрузкой с моделируемыми измерениями от энкодера вала мотора и датчиков тока. Параметры модели двигателя, нагрузки и датчиков основаны на AD-FMCMOTCON2-EBZ доске оценки от Analog Devices ®. Подсистема Controller содержит OC с обратной связью и контроллеры калибровки без разомкнутого контура.

Контроллер разделен на две подсистемы, внутренний контур управления током и внешний контур управления скоростью и калибровкой.

Подсистема Current Control берёт командное текущее значение из Подсистемы Calibration and Скорости Control. Для преобразования переменного тока и формы волны напряжения в сигналы постоянного тока токового контроллера использует последовательные преобразования Кларка и Парка. Пропорционально-интегральный (PI) контроллер использует сигналы DC, чтобы управлять сигналами переключения PWM к степень, управляя PMSM.

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

Аппаратно-программная секционированная однокристальная модель

Структура секционированной модели SoC основана на схеме разбиения, показанной ниже. Быстрый токовый контроллер работает на FPGA и контроллере медленной скорости на процессоре. FPGA и процессор взаимодействуют через интерфейс AXI.

Исходная подсистема контроллер из поведенческой модели была разделена на модели процессора и FPGA, которые связаны с блоками Register Channel.

  • Процессор

Калибровка разомкнутые контуры и контроллеры скорости с обратной связью теперь находятся внутри блока Model и работают как задача, управляемая блоком Task Manager. В рамках итерации задачи контроллер сначала читает из AXI-регистров с помощью блоков Register Read, итерирует алгоритм управления, а затем записывает обновленные выходы в AXI-регистр с помощью блоков Register Write. Диспетчер задач выполняет задачу контроллера со скоростью 1kHz со средней длительности выполнения 0,2 мс.

  • Интерфейс AXI

Блок Register Channel моделирует коммуникацию AXI между FPGA и Процессором для операций чтения и записи регистров. Соответствующие блоки драйверов AXI4-Lite Register Read/Register Write используются в модели процессора, чтобы представлять AXI4-Lite интерфейс.

  • FPGA

Токовый контроллер с обратной связью содержится в блоке Model, представляющем FPGA устройства СоК. Поскольку токовый контроллер существует в FPGA, он может записывать и читать непосредственно из аппаратных регистров AXI. FPGA использует часы 40us.

Сравнение поведенческих и СнК- Симуляций модели

1. Откройте и запустите поведенческую модель. Наблюдайте за поведением контроллера и мотора из System_Response возможностей.

2. Откройте и запустите секционированную модель SoC. Заметьте, что поведение контроллера и мотора совпадает.

3. Нажмите Data Inspector, чтобы открыть Данные Моделирования Inspector (SDI). Данные сигнала для предыдущих запусков модели были автоматически захвачены и архивированы в SDI.

4. Выберите rotorVelocity из Run 1: soc_motor_behavior и rotorVelocity из Run 2: soc_motor_top в каждый подграфик, чтобы получить следующий график. И поведенческая, и секционированная модели демонстрируют эквивалентное отслеживание скорости двигателя.

5. Из Run 2: soc_motor_top выберите и отобразите сигналы Velocity_Control_Task и Core: 0 в каждом подграфике, чтобы получить следующий график. На графике можно наблюдать время выполнения задачи контроллера скорости и загрузку центрального процессора.

Другие вещи, чтобы попробовать

Можно использовать эту модель в качестве шаблона для разработки модели SoC, специфичной для вашего оборудования для управления двигателем, например, платы драйвера двигателя FMC - Analog Devices AD-FMCMOTCON2-EBZ. Он будет генерировать SoC- проекта (bitstream FPGA и исполняемое программное обеспечение) с помощью HDL-кодера и Embedded Coder. Для получения информации о поддержке адаптированных системных плат и устройств ввода-вывода см. документацию по поддержке пользовательских плат.