В этом примере показано, как смоделировать моторный контроллер для устройств 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 основана на схеме выделения разделов, показанной ниже. Быстрый текущий контроллер работает на 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 часы.
1. Открытый и запуск поведенческая модель. Наблюдайте контроллер и моторное поведение от осциллографа System_Response.
2. Открытый и запуск разделенная модель SoC. Заметьте, что контроллер и моторное поведение соответствуют.
3. Нажмите Data Inspector, чтобы открыть Инспектора данных моделирования (SDI). Данные сигнала для предыдущих запусков модели были автоматически получены и заархивированы в SDI.
4. Выберите rotorVelocity из Запущенного 1: soc_motor_behavior и rotorVelocity от Запущенных 2: soc_motor_top в каждый подграфик, чтобы получить следующий график. Оба поведенческие и разделенные модели демонстрируют эквивалентное моторное скоростное отслеживание.
5. От Запущенных 2: soc_motor_top, выберите и отобразите Velocity_Control_Task и Ядро: 0 сигналов в каждый подграфик, чтобы получить следующий график. Из графика можно наблюдать время выполнения задачи скоростного контроллера и загрузки ЦП.
Можно использовать эту модель в качестве шаблона, чтобы разработать модель SoC, специфичную для оборудования блока управления приводом, например, моторной платы драйвера FMC - Аналоговые устройства AD-FMCMOTCON2-EBZ. Это сгенерирует проект SoC (поток битов FPGA и исполняемое программное обеспечение) использование кодера HDL и Embedded Coder. Обратитесь к пользовательской документации поддержки платы для поддержки индивидуально настраиваемой платы SoC и устройств ввода-вывода.