Разделение аппаратного программного обеспечения алгоритма управления двигателем

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

Введение

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

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

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

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

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

Контроллер разделен в две подсистемы, внутренний Текущий Цикл управления и внешний Скоростной и Калибровочный Цикл управления.

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

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

Аппаратное программное обеспечение разделенная модель SoC

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

Исходная Подсистема контроллера от поведенческой модели была разделена в процессор и модели FPGA, которые соединяются с блоками Канала Регистра.

  • Процессор

Калибровка разомкнутого цикла и скоростные контроллеры с обратной связью теперь в блоке Model, действуют в качестве задачи, управляемой блоком Task Manager. Как часть итерации задачи, диспетчер сначала читает из регистров AXI с помощью блоков Реджистера Рида, выполняет итерации алгоритма управления, и затем пишет обновленные выходные параметры в регистр AXI с помощью блоков Реджистера Райта. Диспетчер задач выполняет задачу контроллера на уровне 1 кГц со средней длительностью выполнения 0,2 мс.

  • Интерфейс AXI

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

  • FPGA

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

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

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

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

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

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

5. От Запущенных 3: soc_motor_top_simprofile, выберите и отобразите Velocity_Control_Task и Ядро: 0 сигналов в каждый подграфик, чтобы получить следующий график. Из графика можно наблюдать время выполнения задачи скоростного контроллера и загрузки ЦП.

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

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