Сгенерируйте код С для модели

Simulink® Coder™ генерирует автономный код C/C++ для моделей Simulink для развертывания в большом разнообразии приложений. Начало работы с Simulink Coder включает три примера. Рекомендуется, чтобы вы завершились, Генерируют код С для Модели сначала, и затем следующих примеров: Создание и запуск Исполняемого файла и Настроек параметров и Сигналов Монитора Во время Выполнения.

Этот пример показывает, как подготовить модель rtwdemo_secondOrderSystem к генерации кода и сгенерировать код С для симуляции в реальном времени. Реализации модели rtwdemo_secondOrderSystem физическая система второго порядка вызвали идеальную систему массового пружинного демпфера. Компоненты системного уравнения перечислены как масса, жесткость и затухание.

Установите свою текущую папку MATLAB® на writeable папку. Затем чтобы открыть модель, в командном окне, введите:

rtwdemo_secondOrderSystem

Сконфигурируйте модель для генерации кода

Чтобы подготовить модель к генерации C89/C90 совместимый код С, можно задать настройки генерации кода в диалоговом окне Configuration Parameters. Чтобы открыть диалоговое окно Configuration Parameters, в Редакторе Simulink, нажимают кнопку Model Configuration Parameters.

Решатель для генерации кода

Чтобы сгенерировать код для модели, необходимо сконфигурировать решатель. Simulink Coder генерирует только автономный код для решателя фиксированного шага. На панели Solver выберите решатель, который соответствует критериям производительности для выполнения в реальном времени. Для этой модели наблюдайте следующие настройки.

Цель генерации кода

Чтобы задать целевую настройку для модели, выберите системный конечный файл, make-файл шаблона и команду make. Можно использовать готовую-к-управляемому Типичную Цель В реальном времени (GRT) настройка.

  1. В диалоговом окне Configuration Parameters выберите панель Code Generation.

  2. Чтобы открыть диалоговое окно System Target File Browser, нажмите кнопку Browse параметра System target file. Диалоговое окно System Target File Browser включает список доступных целей. Этот пример использует системный конечный файл grt.tlc Generic Real-Time Target.

  3. Нажмите OK.

Отчет генерации кода

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

  1. В диалоговом окне Configuration Parameters выберите панель Code Generation > Report.

  2. В данном примере эти параметры конфигурации выбраны:

    • Create code generation report

    • Open report automatically

После того, как процесс генерации кода завершен, отчет генерации кода HTML появляется в отдельном окне.

Проверяйте настройку модели на эффективность выполнения

При генерации кода для развертывания приложений общая цель для сгенерированного кода состоит в том, что это выполняется эффективно. Можно запустить Советника Генерации кода на модели для заданной цели, такой как Execution efficiency. Советник предоставляет информацию о том, как достигнуть целей генерации кода для вашей модели.

  1. В диалоговом окне Configuration Parameters выберите панель Code Generation.

  2. Под целями Генерации кода выберите следующее, и затем нажмите Apply:

    • Select objective — Из выпадающего списка выберите Execution efficiency.

    • Check model before generating code — Из выпадающего списка выберите On (proceed with warnings).

  3. Нажмите Check Model.

  4. В Системном диалоговом окне Селектора нажмите OK, чтобы осуществить проверки модели.

    После того, как советник запускается, существует два предупреждения, обозначенные желтым треугольником.

  5. На левой панели нажмите Check model configuration settings against code generation objectives.

  6. На правой панели нажмите Modify Parameters. Параметры конфигурации, которые вызвали предупреждение, изменяются на рекомендуемую установку.

  7. На правой панели нажмите Run This Check. Проверка теперь передает. Советник Генерации кода перечисляет параметры и их рекомендуемые настройки для Execution efficiency. Закройте Советника Генерации кода.

Проигнорируйте предупреждение для Identify questionable blocks within the specified system. Это предупреждение для генерации производственного кода, которая не является целью для этого примера.

Моделируйте модель

В Редакторе Simulink моделируйте модель, чтобы проверить, что вывод - как вы ожидаете для заданных настроек решателя.

  1. Моделируйте модель.

  2. Когда симуляция будет сделана в Редакторе Simulink, нажмите кнопку Simulation Data Inspector, чтобы открыть Инспектора Данных моделирования.

  3. Расширьте выполнение, и затем выберите поля проверки данных блока Outport, чтобы отобразить данные на графике.

Оставьте эти результаты в Инспекторе Данных моделирования. Позже, можно сравнить данные моделирования с выходными данными, сгенерированными от исполняемого файла, показанного в Создании и запуске Исполняемого файла.

Сгенерируйте код

  1. В диалоговом окне Configuration Parameters, на панели Code Generation, устанавливают флажок Generate code only.

  2. Нажмите Apply.

  3. В Редакторе Simulink нажмите Ctrl+B.

После генерации кода открывается отчет генерации кода HTML.

Просмотрите сгенерированный код

Процесс генерации кода помещает файлы исходного кода в папку rtwdemo_secondOrderSystem_grt_rtw. Отчет генерации кода HTML находится в thertwdemo_secondOrderSystem_grt_rtw/html/rtwdemo_secondOrderSystem_codegen_rpt.html папке.

Откройте отчет генерации кода HTML, rtwdemo_secondOrderSystem_codegen_rpt.html. Отчет генерации кода включает в себя:

  • Сводные данные

  • Отчет подсистемы

  • Отчет интерфейса кода

  • Сгенерированный код

Отчет интерфейса кода

В левой панели навигации нажмите Code Interface Report, чтобы открыть отчет. Отчет интерфейса кода предоставляет информацию о том, как внешняя основная программа может взаимодействовать через интерфейс со сгенерированным кодом. Существует три функции точки входа, чтобы инициализировать, продвинуться, и отключить способный код в реальном времени.

Для rtwdemo_secondOrderSystem раздел Outports включает одну выходную переменную, представляющую блок Outport модели.

Сгенерированный код

Сгенерированный файл model.c rtwdemo_secondOrderSystem.c содержит код алгоритма, включая код решателя ОДУ. Данные модели и функции точки входа доступны для вызывающей стороны включением rtwdemo_secondOrderSystem.h.

На левой панели навигации нажмите rtwdemo_secondOrderSystem.h, чтобы просмотреть объявления extern для блока выходные параметры, непрерывные состояния, образцовый вывод, точки входа и данные о синхронизации:

Следующий пример показывает, как создать исполняемый файл. Смотрите Создание и запуск Исполняемого файла.