exponenta event banner

Тест сгенерированного кода

Проверка созданного кода с помощью S-функций системного уровня или с помощью выполнения кода во внешней среде.

Узнайте о:

  • Различные методы тестирования созданного кода

  • Тестирование сгенерированного кода в Simulink ®

  • Тестирование сгенерированного кода вне Simulink

Сведения о модели примера и других примерах этой серии см. в разделе Подготовка модели алгоритма управления для генерации кода C.

Методы проверки

Simulink ® поддерживает несколько методов системного тестирования для проверки поведения сгенерированного кода .

Исполняемый файл Windows ®: создайте исполняемый файл Microsoft ® Windows ® и запустите исполняемый файл из командной строки.

  • Преимущество: простота создания и возможность использования отладчика C для оценки кода

  • Недостаток: частичная эмуляция целевого оборудования

Тестирование программного обеспечения в цикле (SIL): используйте S-функцию для включения сгенерированного кода в модель Simulink.

  • Преимущество: простота создания, возможность повторного использования тестовой среды Simulink и возможность использования отладчика C для оценки кода

  • Недостаток: частичная эмуляция целевого оборудования

Тестирование процессора в цикле (PIL): запуск косимуляции не в реальном времени. Simulink выполняет часть модели (обычно модель завода), в то время как целевой процессор выполняет другую часть модели (обычно контроллер). После загрузки кода на целевой процессор технология «процессор в цикле» обрабатывает передачу сигналов между Simulink и целевым процессором во время косимуляции.

  • Преимущество: повторное использование тестовой среды Simulink, использование отладчика C с моделированием и использование целевого процессора

  • Недостаток: требуются дополнительные шаги для настройки тестовой среды, и процессор не работает в режиме реального времени

Быстрое создание прототипов на цели: Запустите сгенерированный код на целевом процессоре как часть всей системы.

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

  • Недостаток: требуется оборудование и дополнительные шаги для настройки тестовой среды

Внешний режим: Запустите созданный код на целевом процессоре как часть полной системы.

  • Преимущество: Вы можете определить фактические аппаратные ограничения и протестировать компонент в рамках всей системы

  • Недостаток: требуется оборудование и дополнительные шаги для настройки тестовой среды

Повторное использование тестовых данных вне Simulink

®

В других примерах этой серии выполняется тестирование системы с помощью моделирования в Simulink. Входные данные теста поступают из блока Signal Builder в модели тестового кабеля.

Для тестирования системы вне Simulink ® можно повторно использовать входные данные теста.

  1. Сохраните тестовые данные Simulink в файл.

  2. Отформатируйте данные так, как это возможно для системного кода.

  3. Прочитайте файл данных как часть процедур системного кода.

Чтобы использовать Simulink для выполнения проверки, можно сохранить выходные данные теста из внешней среды в формате, который MATLAB ® может считывать .

В этом примере файл hardwareInputs.c содержит данные из блока Signal Builder в модели тестового электрического жгута.

Тестирование с помощью программного обеспечения в контуре (SIL блока модели)

Создание и настройка блока модели для SIL

Simulink может генерировать код из блока Model, переносить код в S-функцию и добавлять S-функцию обратно в модель для тестирования программного обеспечения в цикле.

Откройте пример модели, rtwdemo_PCG_Eval_P6.

Откройте модель тестового электрического жгута.

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

  1. Щелкните правой кнопкой мыши блок модели и выберите Параметры блока (Model Reference).

  2. Задайте имя модели как имя модели, которую требуется проверить.

  3. Установить режим моделирования в значение Software-in-the-loop (SIL).

Блок «Модель» теперь показывает (SIL) тег.

Настройка моделей для SIL

Сконфигурируйте примерную модель, rtwdemo_PCG_Eval_P6и модель тестового электрического жгута, rtwdemo_PCGEvalHarnessHTGTSIL, для моделирования SIL путем корректировки параметров реализации аппаратных средств.

Откройте пример модели.

Для обеих моделей в диалоговом окне Параметры конфигурации (Configuration Parameters) установите флажок Поддерживать длинную (Support long long).

Сохраните копию примерной модели, rtwdemo_PCG_Eval_P6, в текущей папке.

Запуск SIL блока модели

В этом примере модель тестового кабеля содержит блок модели, настроенный для моделирования SIL.

Откройте тестовый жгут.

Запустите тестовый жгут.

Созданный код и моделирование дают одинаковые результаты.

Настройка системы для тестирования посредством импорта и экспорта тестового вектора

Этот пример расширяет пример интеграции в разделе Создание интегрированного кода вне среды Simulink. В этом случае example_main.c использует моделируемое аппаратное I/O.

Увеличенный example_main.c теперь файл использует следующий порядок выполнения:

1. Инициализация данных (однократно)

while < endTime

2. Считывание моделируемых аппаратных входов

3. PI_cnrl_1

4. PI_ctrl_2

5. Pos_Command_Arbitration

6. Запись моделируемых аппаратных выходов

end while

Посмотреть example_main.c.

Две функции, plant и hardwareInputs, введите входные тестовые данные.

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

void Plant(void)

HardwareInputs.c: Эта функция обеспечивает pos_req и добавляет шум от Input_Signal_Scaling подсистем в сигнал обратной связи установки.

void hardwareInputs(void)

Рукописная функция в WriteDataForEval.c регистрирует выходные данные теста. После завершения теста функция выполняет и записывает данные в файл. PCG_Eval_ExternSimData.m. Этот файл сценария можно запустить в MATLAB для доступа к данным. Затем можно сравнить данные с моделируемыми данными из Simulink ®.

Чтобы включить эти дополнительные файлы, определите их с помощью параметров конфигурации > Создание кода > Пользовательский код > Дополнительные сведения о построении.

Проверка с помощью импорта и экспорта тестового вектора (среда Eclipse™)

Перед созданием исполняемого файла в среде Eclipse™ заново создайте код без интерфейса S-функции.

Создайте код C для интеграции.

Сведения об установке и использовании Eclipse™ и GCC см. в разделе Установка и использование Cygwin и Eclipse.

Чтобы установить файлы для этого примера автоматически, щелкните гиперссылку.

Автоматическая настройка папки построения.

Кроме того, чтобы установить файлы вручную, выполните следующие действия.

  1. Создать папку построения (Eclipse_Build_P6).

  2. Распакуйте файл rtwdemo_PCG_Eval_P6.zip в папку построения.

  3. Удалить файлы rtwdemo_PCG_Eval_P6.c, ert_main.c, и rt_logging.c, которые заменены на example_main.c.

Запустите управляющий код в Eclipse™. Функция в writeDataForEval.c создает файл eclipseData.m, который содержит выходные тестовые данные. В MATLAB ® загрузите эти Eclipse™ данные, запустив файл сценария. Затем сравните эти данные с данными модели тестовых кабелей Simulink ® с помощью plot.

Следующий пример этой серии см. в разделе Оценка производительности сгенерированного кода.

Связанные темы