Подтвердите сгенерированный код при помощи S-функций уровня системы или путем выполнения кода во внешней среде.
Узнайте о:
Различные методы для тестирования сгенерированного кода
Как протестировать сгенерированный код в Simulink®
Как протестировать сгенерированный код за пределами Simulink
Для получения информации о модели в качестве примера и других примерах в этом ряду, смотрите, Генерируют код С от Алгоритма управления для Встраиваемой системы.
Simulink® поддерживает несколько методов тестирования системы для проверки поведения сгенерированного кода.
Исполняемый файл времени выполнения Windows®: Сгенерируйте исполняемый файл Microsoft® Windows® и запустите исполняемый файл от командной строки.
Преимущество: Легкий создать и позволяет использованию отладчика C оценить код
Недостаток: Частичная эмуляция целевого компьютера
Программное обеспечение в цикле (SIL) тестирование: Используйте S-функцию, чтобы включать сгенерированный код в модель Simulink.
Преимущество: Легкий создать, включает повторное использование тестовой среды Simulink и позволяет использованию отладчика C оценить код
Недостаток: Частичная эмуляция целевого компьютера
Процессор в цикле (PIL) тестирование: Запустите cosimulation нев реальном времени. Simulink выполняет фрагмент модели (обычно модель объекта управления), в то время как целевой процессор запускает различный фрагмент модели (обычно контроллер). После того, как вы загрузите код на целевой процессор, процессор в технологии цикла обрабатывает коммуникацию сигналов между Simulink и целью во время cosimulation.
Преимущество: Включает повторное использование тестовой среды Simulink, включает использование отладчика C с симуляцией и включает целевой процессор
Недостаток: Требует, чтобы дополнительные шаги настроили тестовую среду, и процессор не запускается в режиме реального времени
Быстрое прототипирование на цели: Запустите сгенерированный код на целевом процессоре как часть полной системы.
Преимущество: можно определить фактические аппаратные ограничения и протестировать компонент в полной системе. Процессор запускается в режиме реального времени
Недостаток: Требует оборудования и требует, чтобы дополнительные шаги настроили тестовую среду
Режим external mode: Запустите сгенерированный код на целевом процессоре как часть полной системы.
Преимущество: можно определить фактические аппаратные ограничения и протестировать компонент в полной системе
Недостаток: Требует оборудования и требует, чтобы дополнительные шаги настроили тестовую среду
В других примерах в этом ряду вы тестируете систему посредством симуляции в Simulink. Данные о тестовом воздействии прибывают из блока Signal Builder в модели тестовой обвязки.
Чтобы протестировать систему за пределами Simulink®, можно снова использовать данные о тестовом воздействии.
Сохраните тестовые данные Simulink в файл.
Отформатируйте данные способом, к которым может получить доступ системный код.
Считайте файл данных как часть процедур системного кода.
Чтобы использовать Simulink, чтобы выполнить верификацию, можно избавить тестовые выходные данные от внешней среды в формате, который может считать MATLAB®.
В этом примере файл hardwareInputs.c
содержит данные из блока Signal Builder в модели тестовой обвязки.
Создайте и сконфигурируйте блок Model для SIL
Simulink может сгенерировать код от блока Model, перенести код в S-функцию и добавить S-функцию назад в модель для программного обеспечения в тестировании цикла.
Откройте модель в качестве примера, rtwdemo_PCG_Eval_P6
.
Откройте модель тестовой обвязки.
Тестовая обвязка использует блок Model, чтобы получить доступ к модели в качестве примера. В этом примере вы запускаете программное обеспечение в тесте цикла на модели в качестве примера.
Щелкните правой кнопкой по блоку Model и выберите Block Parameters (ModelReference).
Определите Имя модели к имени модели, которую вы хотите протестировать.
Установите режим Simulation на Software-in-the-loop (SIL)
.
Блок Model теперь показывает тег (SIL)
.
Сконфигурируйте модели для SIL
Сконфигурируйте модель в качестве примера, rtwdemo_PCG_Eval_P6
, и модель тестовой обвязки, rtwdemo_PCGEvalHarnessHTGTSIL
, для SIL симуляции путем корректировки параметров аппаратной реализации.
Откройте модель в качестве примера.
В обеих моделях выберите Configuration Parameters> Hardware Implementation> детали Device> Поддержка долго долго.
Сохраните копию модели в качестве примера, rtwdemo_PCG_Eval_P6
, в вашей текущей папке.
Запустите блок Model SIL
В этом примере модель тестовой обвязки содержит блок Model, который сконфигурирован для SIL симуляции.
Сгенерированный код и симуляция приводят к тем же результатам.
Этот пример расширяет пример интегрирования в Сборке Интегрированный Код Вне окружения Simulink. В этом случае example_main.c
использует моделируемый аппаратный ввод-вывод.
Увеличенный файл example_main.c
теперь использует этот порядок выполнения:
1. Инициализируйте данные (одно время)
while < endTime
2. Считайте моделируемые аппаратные входные параметры
3. PI_cnrl_1
4. PI_ctrl_2
5. Pos_Command_Arbitration
6. Запишите моделируемому оборудованию выходные параметры
end while
Две функции, 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™, регенерируйте код без интерфейса S-функции.
Создайте код С для интегрирования.
Чтобы изучить, как установить и использовать Eclipse™ и GCC, смотрите Установку и Использование Cygwin и Eclipse.
Чтобы установить файлы для этого примера автоматически, кликните по гиперссылке.
Автоматически настройте папку сборки.
Также вручную устанавливать файлы:
Создайте папку сборки (Eclipse_Build_P6
).
Разархивируйте файл rtwdemo_PCG_Eval_P6.zip
в папку сборки.
Удалите файлы rtwdemo_PCG_Eval_P6.c
, ert_main.c
и rt_logging.c
, которые заменяются example_main.c.
Запустите код системы управления в Eclipse™. Функция в writeDataForEval.c
создает файл eclipseData.m
, который содержит выходные тестовые данные. В MATLAB® загрузите эти данные Eclipse™ путем выполнения файла скрипта. Затем сравните эти данные с данными из модели тестовой обвязки Simulink® при помощи plot
.
Для следующего примера в этом ряду смотрите, Оценивают Производительность Сгенерированного кода.