Верификация кода и профилирующий Используя тестирование с процессором в контуре обратной связи

В процессоре в цикле (PIL) симуляция алгоритм управления выполняется в целевом компьютере, но модель объекта управления работает на хост-машине. Модель объекта управления симулирует сигналы ввода и вывода для контроллера и связывается с контроллером при помощи последовательного интерфейса. Эта функциональность позволяет вам использовать PIL симуляцию, чтобы определить время выполнения на целевом компьютере, который можно затем сравнить со временем выполнения для симуляции модели на хост-машине.

Время выполнения или показатель производительности алгоритма, который вы получаете из PIL симуляции, помогает вам обнаружить алгоритм, превышенный на целевом компьютере. PIL, профилирующий отчет, показывает средние и максимальные времена выполнения алгоритма на целевом компьютере. Этот пример объясняет PIL, профилирующий на аппаратной плате Instruments™ LAUNCHXL-F28379D Техаса.

Этот пример использует mcb_pmsm_foc_sim.slx модель, чтобы показать верификацию кода в PIL симуляции. Этот пример показывает PIL, профилирующий для Текущей подсистемы Управления в модели. Эта подсистема включает Ориентированное на поле управление (FOC), текущее масштабирование (преобразование на модуль), измерение скорости и масштабирование положения ротора (расчет угла от количеств положения энкодера) алгоритмы. PIL, профилирующий отчет, показывает средние и максимальные времена выполнения алгоритма управления в целевом компьютере.

Этот пример состоит из этих задач:

  • Проверьте выполнение кода при помощи Тестирования с процессором в контуре обратной связи путем сравнения алгоритма в рабочих режимах целевого компьютера и симуляции.

  • Выполните профилирование PIL путем измерения времени выполнения алгоритма в целевом компьютере и сгенерируйте PIL, профилирующий отчет.

Необходимые продукты Mathworks

  • Embedded Coder®

  • Пакет поддержки Embedded Coder для процессоров Texas Instruments C2000™

Поддерживаемые аппаратные средства

  • Плата оборудования контроллеров LAUNCHXL-F28379D

Подготовьте модель PIL

  1. Откройте mcb_pmsm_foc_sim.slx модель.

    open_system('mcb_pmsm_foc_sim.slx');

    Эта модель симулирует двигатель PMSM и алгоритм FOC для регулировки скорости с обратной связью.

  2. На вкладке Hardware панели инструментов Simulink нажмите Hardware Settings.

  3. В диалоговом окне Configuration Parameters, под Hardware Implementation, устанавливает поле Hardware board на TI Delfino F28379D LaunchPad.

Проверьте код при помощи PIL

  1. В диалоговом окне Configuration Parameters выберите эти параметры конфигурации под Hardware Implementation> Hardware board settings> Target hardware resources> PIL:

    1. Communication Interface — Выберите serial.

    2. SCI module — Выберите SCI_A.

    3. Serial port in MATLAB preferences — Модель автоматически обнаруживает коммуникационный порт, с которым вы соединили оборудование. Этот параметр остается неизменным для остальной части в настоящее время активного MATLAB® сеанс. Нажмите кнопку Refresh, чтобы обнаружить коммуникационный порт снова.

  2. Откройте mcb_PIL_config_TI.m файл скрипта, чтобы установить параметры конфигурации.

    edit('mcb_PIL_config_TI.m');
  3. Обновите имя модели и время остановки в скрипте.

  4. Запустите скрипт, чтобы обновить параметры конфигурации имитационной модели и настроек PIL.

  5. Щелкните правой кнопкой по Текущей подсистеме Управления по mcb_pmsm_foc_sim.slx модель в качестве примера. В соответствии с меню C/C++ Code, выберите Deploy this Subsystem to Hardware.

    Система отображает диалоговое окно Build code for Subsystem. Установите Класс памяти на Inlined для всех параметров.

  6. Нажмите Build, чтобы создать модель под названием untitiled это включает подсистему PIL под названием Текущее Управление.

  7. Переименуйте Текущую подсистему Управления в Текущее Управление (PIL).

  8. Скопируйте Текущее Управление (PIL) подсистема и замените Текущую подсистему Управления в mcb_pmsm_foc_sim.slx модель в качестве примера.

    В режиме PIL система развертывает Текущее Управление (PIL) подсистема к цели и выполняет подсистему в целевом компьютере.

  9. Чтобы сравнить осуществление алгоритма на симуляции хост-машины и в PIL симуляции, соедините Текущую подсистему Управления parallely с Текущим Управлением (PIL) подсистема. Кроме того, включите сигнал, входящий в систему подсистема выходные параметры.

  10. На панели инструментов Simulink выберите приложение SIL/PIL Manager из вкладки Apps.

  11. На панели инструментов SIL/PIL выберите SIL/PIL Sim Only.

  12. Выберите Model blocks in SIL/PIL mode в поле System Under Test.

  13. Нажмите Run SIL/PIL на панели инструментов SIL/PIL, чтобы создать Текущее Управление (PIL) подсистема и развернуть его в цель.

    После того, как система развертывает подсистему, Текущее Управление (PIL), который подсистема выполняет на процессоре целевого компьютера, в то время как модель объекта управления работает на хост-машине.

Анализируйте PIL профильные результаты

Когда PIL симуляция заканчивается, система генерирует профильный отчет.

Примечание

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

Этот профильный отчет, который является для типа данных фиксированной точки, показывает максимальные и средние времена выполнения Текущего Управления (PIL) подсистема, работающая на целевом компьютере.

Можно использовать кнопку Data Inspector на вкладке Simulation, чтобы сравнить сигналы, регистрируемые во время основанной на хост-машине симуляции и PIL симуляции (выполняемый на цели). Это помогает вам проверить точность основанной на хост-машине симуляции и PIL симуляции.

Этот график сравнивает сигналы обратной связи скорости от Текущего Управления (PIL) и Текущих подсистем Управления.

Если время выполнения превышает 60% планируемого времени, можно оптимизировать алгоритм с помощью одного из этих методов:

  • Выполнитесь от RAM.

  • Разгрузите некоторые функциональности к CLA или другим центральным процессорам.

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

  • Переместите менее критические функциональности как расчет скорости к более медленному уровню.

Для получения дополнительной информации о верификации кода SIL/PIL см.: