Процесс создания включает генерирующийся код в C или C++ из модели и создания исполняемой программы от сгенерированного кода. Этот пример может использовать типичный в реальном времени (GRT) или системный конечный файл (STF) встроенного в реальном времени (ERT) для генерации кода. Получившаяся автономная программа работает на вашем компьютере разработчика, независимом от внешней синхронизации и событий.
Этот пример использует локальную копию модели slexAircraftExample
, сохраненной в ее собственной папке, aircraftexample
. Настройте свою рабочую папку можно следующим образом:
В Браузере текущей папки MATLAB® перейдите к папке, к которой у вас есть доступ для записи.
Чтобы создать рабочую папку, введите следующую команду MATLAB:
mkdir aircraftexample
Сделайте aircraftexample
вашей рабочей папкой:
cd aircraftexample
Откройте модель slexAircraftExample
:
slexAircraftExample
Модель появляется в Редакторе Simulink® окно модели.
В окне модели выберите File> Save As. Перейдите к своей рабочей папке, aircraftexample
. Сохраните копию модели slexAircraftExample
как myAircraftExample
.
При создании кода генератор кода создает папку сборки в рабочей папке. Именем папки сборки является
, выведенный с имени исходной модели и выбранного системного конечного файла. Папка сборки хранит сгенерированный исходный код и другие файлы, созданные во время процесса сборки. Исследуйте содержание папки сборки в конце этого примера.model_target_rtw
Когда модель содержит блоки Model (ссылки на другие модели), сборка модели создает специальные подпапки в вашей папке Генерации кода (Simulink), чтобы организовать код для моделей, на которые ссылаются. Эти папки генерации кода существуют вместе с папками сборки продукта и названы slprj
. Сгенерируйте Код для Моделей, на которые Ссылаются, описывает перешедшие структуры папок генерации кода в Model Explorer.
Под папкой slprj
подпапка под названием _sharedutils
содержит сгенерированный код, который может быть совместно использован моделями.
Чтобы сгенерировать код из вашей модели, необходимо изменить некоторые образцовые параметры конфигурации. В частности, системный конечный файл типичного в реальном времени (GRT) и большинство других системных конечных файлов требуют, чтобы модель задала решатель фиксированного шага.
Генератор кода производит код для моделей, с помощью решателей переменного шага, для быстрой симуляции (rsim
) и системные конечные файлы S-функции только.
Установить образцовые параметры конфигурации при помощи диалогового окна Configuration Parameters:
Откройте модель myAircraftExample
, если это не уже открыто.
От окна модели откройте диалоговое окно Configuration Parameters путем выбора Simulation> Model Configuration Parameters.
Выберите Configuration Parameters> Solver. Введите следующие значения параметров (некоторые могли уже быть установлены):
Время начала: 0.0
Stop time: 60
Ввод: Fixed-step
Solver: ode5 (Dormand-Prince)
Fixed step size (fundamental sample time): 0.1
Treat each discrete rate as a separate task: Off
Нажмите Apply.
Сохраните модель. Параметры симуляции сохраняются с моделью для использования на будущих сеансах.
Чтобы сконфигурировать процесс сборки для вашей модели, выберите системный конечный файл, набор инструментальных средств или обработайте по шаблону make-файл и команду make
.
В этих примерах и в большинстве приложений, вы не должны задавать эти параметры индивидуально. Примеры используют готовую-к-управляемому настройку типичной цели в реальном времени (GRT). Системный конечный файл GRT создает программу независимого исполняемого файла, которая работает на вашем рабочем компьютере.
Выбрать системный конечный файл GRT с помощью диалогового окна Configuration Parameters:
С открытой моделью myAircraftExample
выберите Simulation> Model Configuration Parameters, чтобы открыть диалоговое окно Configuration Parameters.
Выберите Configuration Parameters> Code Generation.
Для System target file введите grt.tlc
и нажмите Apply.
Configuration Parameters> панель Code Generation отображает выборы для System target file (grt.tlc
), Toolchain (Automatically locate an installed toolchain
) и Build Configuration (Faster Builds
).
Если вы нажимаете Browse, System Target File Browser открывает и отображает системные конечные файлы на пути MATLAB. Некоторые системные конечные файлы требуют дополнительных продуктов. Например, ert.tlc
требует Embedded Coder®.
Сохраните модель.
С открытой моделью myAircraftExample
выберите Simulation> Model Configuration Parameters:
Выберите Code Generation> Report> Create code generation report. Это действие позволяет программному обеспечению создать и отобразить отчет генерации кода для модели myAircraftExample
.
Используйте настройки Code Generation> Comments по умолчанию.
Code Generation> опции Symbols управляет стилем сгенерированного кода. Используйте настройки по умолчанию.
Они Code Generation> параметры Advanced parameters управляют многословием сборки и отладкой:
Verbose build (параметр RTWVerbose
)
Retain .rtw file (параметр RetainRTWFile
)
Profile TLC (параметр ProfileTLC
)
Start TLC debugger when generating code (параметр TLCDebug
)
Start TLC coverage when generating code (параметр TLCCoverage
)
Enable TLC assertion (параметр TLCAssert
)
Используйте настройки по умолчанию.
Выберите Code Generation> Interface.
Для параметра Shared code placement выберите Shared location
. Процесс сборки помещает сгенерированный код для утилит в подпапке в вашей папке Генерации кода (Simulink).
Снимите флажок Advanced parameters> Classic call interface.
Нажмите Apply и сохраните модель.
Процесс сборки генерирует код С из модели. Это затем компилирует и соединяет сгенерированную программу, чтобы создать исполняемое изображение. Создавать и запускать программу:
С открытой моделью myAircraftExample
инициируйте генерацию кода и процесс сборки для модели при помощи любой из следующих опций:
Некоторые сообщения относительно генерации кода и компиляции появляются в Командном окне. Первоначальное сообщение:
### Starting build procedure for model: myAircraftExample
Содержимое многих последующих сообщений зависит от вашего компилятора и операционной системы. Итоговые сообщения включают:
### Created executable myAircraftExample.exe ### Successful completion of build procedure for model: myAircraftExample ### Creating HTML report file myAircraftExample_codegen_rpt.html
Папка генерации кода теперь содержит исполняемый файл, myAircraftExample.exe
(платформы Microsoft® Windows®) или myAircraftExample
(платформы UNIX®). Кроме того, процесс сборки создал папку slprj
и папку myAircraftExample_grt_rtw
в вашей папке Генерации кода (Simulink).
После генерации кода для модели myAircraftExample
процесс сборки отображает отчет генерации кода. Смотрите Генерацию Отчета для получения дополнительной информации о том, как создать и использовать отчет генерации кода.
Чтобы видеть содержимое рабочей папки после сборки, введите команда ls
или dir
:
>> dir . myAircraftExample.slx slprj .. myAircraftExample.slx.autosave myAircraftExample.exe myAircraftExample_grt_rtw
Чтобы запустить исполняемый файл из Командного окна, введите !myAircraftExample
. Символ !
передает команду, которая следует за ним к операционной системе, которая запускает автономную программу myAircraftExample
.
>> !myAircraftExample ** starting the model ** ** created myAircraftExample.mat **
Чтобы видеть файлы, созданные в папке сборки, используйте dir
или команду ls
снова. Точный список произведенных файлов отличается среди платформ MATLAB и версий. Вот демонстрационный список от платформы Windows:
>> dir myAircraftExample_grt_rtw . rt_main.obj myAircraftExample_data.c .. rtmodel.h myAircraftExample_data.obj buildInfo.mat rtw_proj.tmw myAircraftExample_private.h codeInfo.mat myAircraftExample.bat myAircraftExample_ref.rsp defines.txt myAircraftExample.c myAircraftExample_types.h html myAircraftExample.h modelsources.txt myAircraftExample.mk rt_logging.obj myAircraftExample.obj
Процесс сборки создает папку сборки и называет ее
, где model_target_rtw
является именем исходной модели, и model
является системным конечным файлом, выбранным для модели. В этом примере папку сборки называют target
myAircraftExample_grt_rtw
.
Папка сборки включает следующие сгенерированные файлы.
Файл | Описание |
---|---|
|
Автономный код С, который реализует модель |
|
Включать заголовочный файл, содержащий определения параметров и переменных состояния |
|
Заголовочный файл, содержащий распространенный, включает определения |
|
Предописания типов данных используются в коде |
|
Основной заголовочный файл для включения сгенерированного кода в статической основной программе (ее имя не изменяется, и это просто, включает |
Отчет генерации кода, что вы создали для модели myAircraftExample
, отображает ссылку для каждого из этих файлов. Можно щелкнуть по ссылке, исследуют содержимое файла.
Папка сборки содержит другие файлы, используемые в процессе сборки. Они включают:
myAircraftExample.mk
— Make-файл для создания исполняемого использования заданного Набора инструментальных средств.
Объект (.obj
) файлы
myAircraftExample.bat
— Файл проверки партии
rtw_proj.tmw
— Файл маркера
buildInfo.mat
— Создайте информацию для перемещения сгенерированного кода к другой среде разработки
defines.txt
— Определения препроцессора, требуемые для компиляции сгенерированного кода
myAircraftExample_ref.rsp
— Данные, чтобы включать как параметры командной строки к mex
(только системы Windows)
Папка сборки также содержит подпапку, html
, который содержит файлы, которые составляют отчет генерации кода. Для получения дополнительной информации см. Отчеты для Генерации кода.
После создания кода генератор кода производит индивидуально настраиваемый make-файл, model
.mk
. Сгенерированный make-файл дает команду системной утилите make
компилировать и соединять исходный код, сгенерированный из модели, любой необходимой программы обвязки, библиотек или обеспеченных пользователями модулей. Генератор кода производит файл model
.mk
независимо от подхода, который вы используете для управления процессом сборки:
Если вы используете подход набора инструментальных средств, генератор кода создает model
.mk
на основе модели Toolchain settings. Можно изменить генерацию make-файла через API rtwmakecfg.m
.
Если вы используете подход make-файла шаблона, генератор кода создает model
.mk
из системного файла шаблона, system
.tmf
(где system
обозначает выбранное системное имя конечного файла). Системный make-файл шаблона разработан для вашего системного конечного файла. Можно изменить make-файл шаблона, чтобы задать компиляторы, параметры компилятора и дополнительную информацию для создания исполняемого файла.
Для получения дополнительной информации смотрите, Выбирают Build Approach и Configure Build Process.