Подготовьте модель rtwdemo_secondOrderSystem
для генерации кода и генерируют совместимый код С C89/C90 при помощи инструмента Simulink® Coder™ Quick Start. Затем смотрите сгенерированный код.
Инструмент Quick Start выбирает основные настройки генерации кода на основе ваших целей и приложения. Например, инструмент Quick Start конфигурирует модель с решателем фиксированного шага, который требуется для генерации кода.
Открытая модель rtwdemo_secondOrderSystem
путем ввода имени модели в Командном окне.
Сохраните копию модели к writeable местоположению на пути MATLAB®.
Если вкладка C Code не уже открыта, в галерее Apps, под Code Generation, нажмите Simulink Coder.
Откройте инструмент Simulink Coder Quick Start. На вкладке C Code нажмите Quick Start.
Пройдите по шагам инструмента Quick Start. Каждый шаг задает вопросы о коде, который вы хотите сгенерировать. Для этого примера используйте настройки по умолчанию. Инструмент подтверждает ваши выборы против модели и представляет изменения параметра, требуемые сгенерировать код.
На шаге Generate Code примените предложенные изменения и сгенерируйте код из модели путем нажатия на Next.
Нажмите Finish. В Редакторе Simulink возвратитесь к вкладке C Code. Сконфигурируйте индивидуальные настройки генерации кода, регенерируйте код и проверяйте результаты в отчет генерации кода.
Генератор кода создает папку rtwdemo_secondOrderSystem_ert_rtw
в вашей текущей рабочей папке и файлах исходного кода мест в той папке. Сгенерированный код находится в двух первичных файлах: rtwdemo_secondOrderSystem.c
и rtwdemo_secondOrderSystem.h
. Файл rtwdemo_secondOrderSystem.c
содержит код алгоритма, включая код решателя ОДУ. Данные модели и функции точки входа доступны для вызывающей стороны включением rtwdemo_secondOrderSystem.h
. rtwdemo_secondOrderSystem.h
файл включает extern
объявления для блока выходные параметры, непрерывные состояния, выход модели, точки входа и данные о синхронизации.
В вашей текущей папке генератор кода создает slprj/target/_sharedutils
папка.. Эта папка содержит файл rtwtypes.h
, который задает стандартные типы данных, которые сгенерированный код использует по умолчанию. Эта одноуровневая папка содержит сгенерированные файлы, которые могут или должны быть совместно использованы многоуровневыми моделями.
Код, который вы генерируете из модели, включает функции точки входа, которые вы вызываете от кода приложения, такого как внешняя основная программа. Для основанной на уровне модели эти функции включают функцию инициализации, функцию выполнения, и, опционально, оконечный и функции сброса. Функции обмениваются данными с вашим кодом приложения через интерфейс данных, которым вы управляете.
Откройте отчет генерации кода. Во вкладке C Code нажмите Open Report.
Откройте раздел Code Interface Report. Рассмотрите функции точки входа, которые генератор кода производит для модели. Для инициализирования, выполнения (шаг) и оконечные функции, генератор кода использует эти имена:
rtwdemo_secondOrderSystem_initialize
rtwdemo_secondOrderSystem_step
rtwdemo_secondOrderSystem_terminate
Функции имеют void-void
интерфейс, что означает, что они не передают аргументы. Функции получают доступ к данным через структуры разделяемых данных. Примеры таких данных включают ввод и вывод уровня системы, которым функции обмениваются с кодом приложения.
Рассмотрите функции точки входа в сгенерированном коде. На левой панели отчета генерации кода, под Generated Code, имя файла нажатия кнопки rtwdemo_secondOrderSystem.c
. Используйте поле Find, чтобы найти экземпляры строки secondOrderSystem_step
. Используйте стрелки вправо поля Find, чтобы продвинуться через каждый экземпляр. Сделайте то же самое для заголовочного файла rtwdemo_secondOrderSystem.h
. Затем код анализа для инициализирования и оконечных функций.
Затем проверьте, заканчивается ли симуляция модели соответствие сгенерированные результаты исполняемой программы.