Управление двигателем секционирования для многопроцессорных MCU

Этот пример показывает, как разбить приложение управления двигателем в реальном времени на несколько процессоров, чтобы достичь расчетной модульности и улучшенной эффективности управления.

Многие MCU обеспечивают несколько процессорных ядер. Эти дополнительные ядра могут быть использованы для достижения целого ряда проекта целей:

  • Разделите приложение на задачи в реальном времени, такие как законы управления и задачи нереального времени, такие как внешняя связь, диагностика или машинное обучение

  • Разделите алгоритм управления, чтобы запустить его на нескольких центральных процессорах, чтобы достичь более высокой скорости цикла

  • Запуск одного и того же приложения в нескольких центральных процессорах для критически важных приложений безопасности

Этот пример показов, как разбить приложение управления двигателем на два центральных процессоров F28379D TI Delfino, чтобы достичь более высокого времени дискретизации/частоты PWM.

Необходимое оборудование:

  • Плата на F28379D TI Delfino F2837xD LaunchPad или TI Delfino

  • BOOSTXL-DRV8305EVM платы драйвера мотора

  • Двигатель Teknic M-2310P-LN-04K PMSM

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

Откройте модель soc_pmsm_singlecpu_foc. Эта модель описывает один контроллер двигателя CPU, содержащийся в модели soc_pmsm_singlecpu_ref, для синхронной машины с постоянными магнитами (PMSM).

Мы разбиваем алгоритм управления, выполняя текущее управление на CPU2, и регулирование скорости и оценку положения на CPU1 соответственно. Передача данных между центральными процессорами обрабатывается блоком Interprocess Data Channel. Для получения дополнительной информации смотрите Interprocess Data Communication через выделенный аппаратный периферийный узел.

Откройте модель soc_pmsm_dualcpu_foc.

open_system('soc_pmsm_dualcpu_foc');

На вкладке System on Chip нажмите Hardware Settings, чтобы открыть окно Параметры Конфигурации. На вкладке Аппаратная реализация параметр Processing Unit сконфигурирован на «None», что указывает на то, что это системная модель верхнего уровня.

Откройте модель soc_pmsm_cpu1_ref и откройте модель soc_pmsm_cpu2_ref, чтобы просмотреть алгоритмы, сконфигурированные для каждого центрального процессора. Модели-ссылки, содержащиеся в системной модели, сконфигурированы для выполнения на c28xCPU1 (CPU1) и c28xCPU2 (CPU2).

На вкладке Simulation нажмите 'Play', чтобы симулировать модель. Откройте Данные Моделирования Inspector и просмотрите сигналы. Этот рисунок показов результатом одно- и двух- центральный процессор моделей в симуляции и развертывании.

Повышение эффективности при параллельном выполнении

Использование обоих центральных процессоров для выполнения алгоритмов управления позволяет нам достичь более высокой пропускной способности контроллера. В исходной модели центрального процессора алгоритму управления требуется чуть более 25us, чтобы выполнить. Чтобы обеспечить запас прочности, одна модель CPU использует частоту PWM 20kHz, эквивалентную периоду 50us.

После разбиения CPU1 и CPU2 времен выполнения уменьшаются до менее 20us. Позволяет увеличить частоту ШИМ до 40kHz. В mcb_pmsm_foc_sensorless_f28379d_data.m скрипт, установите PWM_frequency значение 40e3 и запустите скрипт, чтобы сконфигурировать модель на новой частоте PWM. При более быстрой дискретизации токов усиления контроллера могут затем быть настроены, чтобы достичь более быстрого времени отклика.

Разверните модель в TI Delfino F28379D LaunchPad с помощью инструмента SoC Builder. Чтобы открыть инструмент, на вкладке System on Chip, нажмите Configure, Build, & Deploy, и следуйте указаниям.

Этот рисунок показывает реакцию контроллера от симуляции и развертывания при 25us циклу тока с 40kHz частотой PWM по сравнению с 50us цикл тока на 20kHz частоте. Как ожидалось, время нарастания скорости улучшается при более быстром цикле тока приблизительно на 50 процентов.

Скоростная характеристика является колебательной из-за sensorless алгоритма, для получения дополнительной информации смотрите Sensorless Field-Oriented Control of PMSM (Motor Control Blockset)

См. также

Копирайт 2020 The MathWorks, Inc.