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) настройка.
В диалоговом окне Configuration Parameters выберите панель Code Generation.
Чтобы открыть диалоговое окно System Target File Browser, нажмите кнопку Browse параметра System target file. Диалоговое окно System Target File Browser включает список доступных целей. Этот пример использует системный конечный файл grt.tlc Generic Real-Time Target
.
Нажмите OK.
Можно указать, что процесс генерации кода генерирует отчет HTML, который включает сгенерированный код и информацию о модели.
В диалоговом окне Configuration Parameters выберите панель Code Generation > Report.
В данном примере эти параметры конфигурации выбраны:
Create code generation report
Open report automatically
После того, как процесс генерации кода завершен, отчет генерации кода HTML появляется в отдельном окне.
При генерации кода для развертывания приложений общая цель для сгенерированного кода состоит в том, что это выполняется эффективно. Можно запустить Советника Генерации кода на модели для заданной цели, такой как Execution efficiency
. Советник предоставляет информацию о том, как достигнуть целей генерации кода для вашей модели.
В диалоговом окне Configuration Parameters выберите панель Code Generation.
Под целями Генерации кода выберите следующее, и затем нажмите Apply:
Select objective — Из выпадающего списка выберите Execution efficiency
.
Check model before generating code — Из выпадающего списка выберите On (proceed with warnings)
.
Нажмите Check Model.
В Системном диалоговом окне Селектора нажмите OK, чтобы осуществить проверки модели.
После того, как советник запускается, существует два предупреждения, обозначенные желтым треугольником.
На левой панели нажмите Check model configuration settings against code generation objectives.
На правой панели нажмите Modify Parameters. Параметры конфигурации, которые вызвали предупреждение, изменяются на рекомендуемую установку.
На правой панели нажмите Run This Check. Проверка теперь передает. Советник Генерации кода перечисляет параметры и их рекомендуемые настройки для Execution efficiency
. Закройте Советника Генерации кода.
Проигнорируйте предупреждение для Identify questionable blocks within the specified system. Это предупреждение для генерации производственного кода, которая не является целью для этого примера.
В Редакторе Simulink моделируйте модель, чтобы проверить, что вывод - как вы ожидаете для заданных настроек решателя.
Моделируйте модель.
Когда симуляция будет сделана в Редакторе Simulink, нажмите кнопку Simulation Data Inspector, чтобы открыть Инспектора Данных моделирования.
Расширьте выполнение, и затем выберите поля проверки данных блока Outport, чтобы отобразить данные на графике.
Оставьте эти результаты в Инспекторе Данных моделирования. Позже, можно сравнить данные моделирования с выходными данными, сгенерированными от исполняемого файла, показанного в Создании и запуске Исполняемого файла.
В диалоговом окне Configuration Parameters, на панели Code Generation, устанавливают флажок Generate code only.
Нажмите Apply.
В Редакторе 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
для блока выходные параметры, непрерывные состояния, образцовый вывод, точки входа и данные о синхронизации:
Следующий пример показывает, как создать исполняемый файл. Смотрите Создание и запуск Исполняемого файла.