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

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

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

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

Этот пример состоит из следующих задач:

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

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

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

  • Embedded Coder®

  • Пакет поддержки Embedded Coder для техасских инструментов 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. Щелкните правой кнопкой мыши подсистему Current Control в mcb_pmsm_foc_sim.slx пример модели. В меню C/C++ Code выберите Deploy this Subsystem to Hardware.

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

  6. Щелкните Build, чтобы создать модель с именем untitiled который включает PIL-подсистему, называемую Current Control.

  7. Переименуйте подсистему Current Control в Current Control (PIL).

  8. Скопируйте подсистему Current Control (PIL) и замените подсистему Current Control в mcb_pmsm_foc_sim.slx пример модели.

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

  9. Чтобы сравнить выполнение алгоритма на симуляции главной машины и в PIL симуляции, соедините подсистему Current Control параллельно с подсистемой Current Control (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 панели инструментов, чтобы создать подсистему Current Control (PIL) и развернуть ее к цели.

    После развертывания подсистемы система выполняет подсистему Current Control (PIL) на целевом аппаратном процессоре, в то время как модель объекта управления работает на хост-машине.

Анализ результатов профилирования PIL

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

Примечание

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

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

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

Этот график сравнивает сигналы обратной связи скорости от подсистем Current Control (PIL) и Current Control.

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

  • Выполните из ОЗУ.

  • Выгрузка некоторых функций в CLA или другие центральные процессоры.

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

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

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

Для просмотра документации необходимо авторизоваться на сайте