Интегрируйте планирование MCU и периферию в приложении блока управления приводом

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

Следующее является типичными проблемами, сопоставленными с периферийными устройствами MCU и планированием:

  • Синхронизация ADC-PWM, чтобы достигнуть текущего обнаружения в средней точке периода PWM

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

  • Изучение различных настроек PWM при разработке специальных алгоритмов

В этом примере показано, как использовать SoC Blockset, чтобы обратиться к этим проблемам для блока управления приводом приложение с обратной связью в симуляции и проверить на оборудовании путем развертывания на TI Delfino F28379D LaunchPad.

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

  • TI Delfino F28379D LaunchPad или TI Delfino F2837xD основывали плату

  • Моторная плата драйвера BOOSTXL-DRV8305EVM

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

Структура модели

open_system('soc_pmsm_singlecpu_foc');

Откройте soc_pmsm_singlecpu_foc модель. Эта модель симулирует один моторный контроллер центрального процессора, содержавшийся в soc_pmsm_singlecpu_ref модели, для Постоянного магнита синхронная моторная система инвертора. Контроллер обнаруживает выходные параметры от объекта с помощью Интерфейса ADC (SoC Blockset) и приводит в движение использование Интерфейс PWM (SoC Blockset), который управляет инвертором. Блоки алгоритма из Motor Control Blockset™ используются в этом примере.

Время захвата ADC

Оборудование ADC содержит схему выборки и хранения, чтобы обнаружить аналоговые входы. Чтобы гарантировать полное измерение ADC, минимальное время захвата должно быть выбрано с учетом совместного воздействия входной схемы и конденсатора в схеме выборки и хранения.

Открытый блок ADC Interface и изменение время захвата по умолчанию к 100 нс. Запустите симуляцию и просмотрите результаты в Инспекторе Данных моделирования и заметьте, что в формах тока существует искажение. Низкое время захвата привело к измерениям ADC, не достигающим их истинного значения. В результате контроллер реагирует путем генерации относительного порождения рабочего цикла изменения тока, чертившего двигателем. Эти рисунки показывают реакцию на неправильное измерение ADC и превышают ограничения в фазе текущий канал с фазой в текущем синем и фазе B, текущей в оранжевом. Симулированная обратная связь скорости показывает значительные колебания во время разомкнутого контура к переходу замкнутого цикла, который в реальном мире остановит двигатель.

Чтобы устранить эту проблему, откройте время захвата изменения и изменения блоков Интерфейса ADC для большего значения, 320 нс. Это значение является минимальным временем захвата ADC, рекомендуемым в Таблице 5-42 таблицы данных TI Delfino F28379D LaunchPad. Запустите симуляцию и просмотрите результаты в Инспекторе Данных моделирования. Этот рисунок показывает точно произведенные значения ADC и контроллер, отслеживающий ссылочное значение как ожидалось.

Проверьте результаты симуляции по оборудованию путем развертывания модели в TI Delfino F28379D LaunchPad. На вкладке System on Chip нажмите Configure, Build, & Deploy, чтобы открыть инструмент SoC Builder (SoC Blockset).

В инструменте SoC Builder, на Периферийном Инструменте конфигурирования, ADC набора> параметр циклов окна захвата SOCx к 13 ADC clock ticks для ADC B и модулей C. Параметр тактов системных часов захвата ADC должен быть установлен на значение времени симуляции, установлен в блоке ADC Interface, умноженном на тактовую частоту ADC. Можно получить тактовую частоту ADC от аппаратных настроек модели. Откройте soc_pmsm_singlecpu_ref модель. На вкладке System on Chip нажмите Hardware Settings, чтобы открыть окно Configuration Parameters. В Аппаратной реализации> ресурсы Целевого компьютера> раздел ADC_x, вы видите ADC clock frequency in MHz значение параметров. Этот рисунок показывает установку блока ADC Interface для симуляции и периферийную установку приложения для развертывания. Используйте ту же установку в симуляции и codegen, чтобы гарантировать ожидаемое поведение.

На странице Select Build Action, к данным контроля от оборудования выбирают Build and load for External mode. Этот рисунок показывает данные из оборудования с точно произведенными значениями ADC и контроллера, отслеживающего ссылочное значение как ожидалось.

Синхронизация ADC-PWM

Моторный драйвер BOOSTXL-DRV8305EVM имеет 3-фазовый инвертор, созданный с помощью 6 степеней MOSFETS. Эта моторная плата драйвера использует резистор шунта низкой стороны, чтобы обнаружить моторные токи. Текущая схема смысла усиливает падение напряжения через шунт. Эта настройка гарантирует рассеяние малой мощности, поскольку ток только течет через шунт, когда нижние переключатели включены и далеко от коммутационного шума PWM. Этот рисунок показывает схему резистора шунта низкой стороны в электроприводе BOOSTXL-DRV8305EVM.

Для правильной операции текущее обнаружение должно произойти во время средней точки периода PWM, когда ADCs инициировали. А именно, счетчик PWM должен быть в максимальном значении, когда нижние переключатели активны в режиме Реверсивного счетчика. Текущая выборка в различном экземпляре приводит к измеренные токи нуля.

Чтобы анализировать этот случай, переключите модель на высококачественный режим симуляции инвертора. Изменитесь вариант объекта, чтобы использовать подробный MOSFET основывал 3-фазовый инвертор, чтобы реплицировать BOOSTXL-DRV8305EVM.

set_param('soc_pmsm_singlecpu_foc/Inverter and Motor/Average or Switching',...
'LabelModeActivechoice','SwitchingInverter');

Измените Output mode параметр Интерфейса PWM (SoC Blockset) к Switching и соедините 6 PWMs с блоком Mux.

set_param('soc_pmsm_singlecpu_foc/PWM Channel/PWM Interface', 'OutSigMode', 'Switching');
set_param('soc_pmsm_singlecpu_foc/PWM Channel/PWM Interface1', 'OutSigMode','Switching');
set_param('soc_pmsm_singlecpu_foc/PWM Channel/PWM Interface2', 'OutSigMode', 'Switching');

Удалите существующую связь между блоком PWM Interface и Мультиплексором.

h = get_param('soc_pmsm_singlecpu_foc/PWM Channel/Mux','LineHandles');
delete_line(h.Inport);

Как последний шаг, соедините 6 PWM выходные параметры, чтобы Мультиплексировать.

set_param('soc_pmsm_singlecpu_foc/PWM Channel/Mux','Inputs','6');
add_line('soc_pmsm_singlecpu_foc/PWM Channel', ...
{'PWM Interface/1', 'PWM Interface/2', 'PWM Interface1/1',...
'PWM Interface1/2', 'PWM Interface2/1', 'PWM Interface2/2'}, ...
{'Mux/1','Mux/2','Mux/3','Mux/4','Mux/5','Mux/6'}, 'autorouting', 'smart');

Откройте блоки Интерфейса PWM и установите триггерный режим События на End of PWM period. Запустите симуляцию и просмотрите результаты в Инспекторе Данных моделирования. На рисунке фаза A и токи фазы B являются приблизительно нулевым током. Это приводит к потере обратной связи и никакого приведения в действие в цикле управления. Выберите Enable task simulation в блоке Task Manager, чтобы симулировать и визуализировать задачи в Инспекторе Данных моделирования.

Чтобы устранить эту проблему, измените триггерный режим События в Mid point of PWM period, эквивалентный внутреннему счетчику PWM, являющемуся в максимуме. Запустите симуляцию и просмотрите результаты в Инспекторе Данных моделирования.

Разверните модель на TI Delfino F28379D LaunchPad с помощью инструмента SoC Builder (SoC Blockset). В инструменте SoC Builder, на Периферийном инструменте конфигурирования, установленном условии события PWM к Counter equals to period. Используйте ту же установку в симуляции и codegen, чтобы гарантировать ожидаемое поведение. Этот рисунок показывает установку блока PWM Interface для симуляции и Периферийную установку Инструмента конфигурирования для развертывания.

Этот рисунок показывает данные из симуляции и оборудования с правильной синхронизацией ADC-PWM и контроллера, отслеживающего ссылочное значение как ожидалось.

Смотрите также

Copyright 2020-2021 The MathWorks, Inc.