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

Об этом примере

Изучение целей

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

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

  • Сгенерируйте код из модели.

  • Найдите и идентифицируйте файлы сгенерированного кода.

  • Рассмотрите сгенерированный код.

Предпосылки

  • Способность открыться и изменить модели Simulink® и подсистемы.

  • Способность установить образцовые параметры конфигурации.

  • Способность использовать Model Advisor Simulink.

  • Способность считать код С.

  • Установленный, поддерживаемый компилятор C.

Необходимые файлы

Файл модели rtwdemo_throttlecntrl

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

Образцовые параметры конфигурации определяют метод для генерации кода и получившегося формата.

  1. Откройте rtwdemo_throttlecntrl и сохраните копию как throttlecntrl в перезаписываемом месте на вашем пути MATLAB.

  2. Откройте диалоговое окно Configuration Parameters, панель Solver. Чтобы сгенерировать код для модели, необходимо сконфигурировать модель, чтобы использовать решатель фиксированного шага. Следующая таблица показывает настройку решателя для этого примера.

    ПараметрУстановкаЭффект на сгенерированный код
    TypeFixed-stepПоддерживает постоянный (фиксированный) размер шага, который требуется для генерации кода
    Solverdiscrete (no continuous states)Применяет метод интегрирования фиксированного шага для вычисления производной состояния модели
    Fixed-step size.001Устанавливает базовую ставку; должно быть наименьшее общее кратное уровней в системе

  3. Откройте Code Generation> панель General и обратите внимание, что System target file установлен в grt.tlc.

    Примечание

    GRT (Типичная Цель В реальном времени) настройка требует решателя фиксированного шага. Однако системный конечный файл rsim.tlc поддерживает переменную генерацию кода шага.

    Системный конечный файл (STF) задает среду для генерации и строительные нормы и правила для выполнения на определенном оборудовании или платформе операционных систем. Например, одно свойство системного конечного файла является значением для переменной CodeFormat TLC. Настройка GRT требует фиксированного решателя шага, и rsim.tlc поддерживает переменную генерацию кода шага.

  4. Откройте Code Generation> панель Custom Code и под Additional build information, выберите Include directories. Следующий путь появляется в текстовом поле:

    "$matlabroot$\toolbox\rtw\rtwdemos\EmbeddedCoderOverview\"

    Эта папка включает файлы, которые требуются, чтобы создавать исполняемый файл для модели.

  5. Закройте диалоговое окно.

Сохраните свою настройку модели как функцию MATLAB

Можно сохранить настройки образцовых параметров конфигурации как функция MATLAB® при помощи функции getActiveConfigSet. В Окне Команды MATLAB, введите:

thcntrlAcs = getActiveConfigSet('throttlecntrl');
thcntrlAcs.saveAs('throttlecntrlModelConfig');

Можно затем использовать получившуюся функцию (например, throttlecntrlModelConfig) к:

  • Заархивируйте настройку модели.

  • Сравните различные настройки модели при помощи инструментов дифференцирования.

  • Установите настройку других моделей.

Например, можно установить настройку модели myModel совпадать с настройкой моделей контроллеров дросселя путем открытия myModel и ввода:

myModelAcs = throttlecntrlModelConfig;
attachConfigSet('myModel', myModelAcs, true);
setActiveConfigSet('myModel', myModelAcs.Name);

Для получения дополнительной информации смотрите, Сохраняют Конфигурацию модели (Simulink) и Загрузка Сохраненная Конфигурация модели (Simulink).

Проверяйте образцовые условия и параметры конфигурации

Прежде, чем сгенерировать код для модели, используйте Model Advisor Simulink, чтобы проверять модель на условия и параметры конфигурации. Эта проверка находит проблемы, которые могут привести к неточному или неэффективному коду.

  1. Открытый throttlecntrl.

  2. Запустите Model Advisor путем выбора Analysis> Model Advisor> Model Advisor. Диалоговое окно открывает показ образцовой системной иерархии.

  3. Нажмите throttlecntrl и затем нажмите OK. Окно Model Advisor открывается.

  4. Расширьте By Product и Embedded Coder. По умолчанию проверки, которые не инициировали Схему Обновления за одним исключением, выбраны.

  5. На левой панели выберите остающиеся проверки и выберите Embedded Coder.

  6. На правой панели выберите Show report after run и нажмите Run Selected Checks. Отчет показывает Run Summary, что флаги проверяют предупреждения.

  7. Рассмотрите отчет. Предупреждения подсвечивают проблемы для встраиваемых систем. На данном этапе можно проигнорировать их. Для получения дополнительной информации об отчетах, вид на море Отчеты Model Advisor (Simulink).

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

  1. Открытый throttlecntrl.

  2. В диалоговом окне Configuration Parameters выберите Code Generation> Generate code only и нажмите Apply.

  3. На Code Generation> панель Report, выберите Create code generation report и нажмите Apply.

  4. С открытой моделью инициируйте генерацию кода и процесс сборки для модели при помощи любой из следующих опций:

    • Нажмите кнопку Build Model.

    • Нажмите Ctrl+B.

    • Выберите Code> C/C++ Code> Build Model.

    • Вызовите команду rtwbuild из командной строки MATLAB.

    • Вызовите команду slbuild из командной строки MATLAB.

    См. сообщения, которые появляются в Окне Команды MATLAB. Генератор кода производит стандарт C и заголовочные файлы и отчет генерации кода HTML. Генератор кода помещает файлы в папку сборки, подпапку под названием throttlecntrl_grt_rtw под вашей текущей рабочей папкой.

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

  1. Откройте Model Explorer, и в панели Model Hierarchy, расширьте узел для модели throttlecntrl и выберите узел Code for.

  2. В панели Contents выберите HTML Report. Model Explorer отображает отчет генерации кода HTML для моделей контроллеров дросселя.

  3. В отчете HTML щелкните по ссылке для сгенерированного файла модели C и рассмотрите сгенерированный код. Ищите эти элементы в отчете:

    • Идентификация, версия, метка времени и комментарии настройки.

    • Ссылки, чтобы помочь вам перейти в и между файлами

    • Определения данных

    • Код планировщика

    • Код контроллера

    • Образцовые функции инициализации и завершения

    • Вызовите интерфейс для системного конечного файла GRT — вывод, обновление, инициализация, запуститесь, и оконечный

  4. Сохраните и закройте throttlecntrl.

Рассмотрите исследование следующих файлов. В отчете HTML панель Contents щелкните по ссылкам. Или в вашей рабочей папке исследуйте подпапку сгенерированного кода.

ФайлОписание
throttlecntrl.cC файл, который содержит планировщик, контроллер, инициализацию и интерфейсный код
throttlecntrl_data.cC файл, который присваивает значения сгенерированным структурам данных
throttlecntrl.hЗаголовочный файл, который задает структуры данных
throttlecntrl_private.hЗаголовочный файл, который задает данные, используемые только сгенерированным кодом
throttlecntrl_types.hЗаголовочный файл, который задает структуру данных модели

Для получения дополнительной информации смотрите, Управляют Зависимостями от Файла Процесса сборки.

На данном этапе рассмотрите данные о регистрации к MAT-файлу. Для примера см. Данные логов для Анализа.

Сгенерируйте исполняемый файл

  1. Открытый throttlecntrl.

  2. В диалоговом окне Configuration Parameters снимите флажок Code Generation> Generate code only и нажмите Apply.

  3. Нажмите Ctrl+B. См. сообщения в Окне Команды MATLAB. Генератор кода использует make-файл шаблона, сопоставленный с вашим системным выбором конечного файла, чтобы создать исполняемый файл. Можно запустить эту программу на рабочей станции, независимой от внешней синхронизации и событий.

  4. Проверяйте свою рабочую папку на файл throttlecntrl.exe.

  5. Запустите исполняемый файл. В Командном окне введите !throttlecntrl. Символ ! передает команду, которая следует за ним к операционной системе, которая запускает автономную программу.

    Программа продолжает одну линию вывода в Командном окне:

    ** starting the model **

    На данном этапе рассмотрите данные о регистрации к MAT-файлу. Для примера см. Данные логов для Анализа.

Совет

Для платформ UNIX® запустите исполняемый файл в Командном окне с синтаксисом !./ executable_name. Если предпочтено, выполнение исполняемый файл от ОС окружают с синтаксисом ./ executable_name. Для получения дополнительной информации смотрите Выполнение Внешние Команды, Скрипты и Программы (MATLAB).

Ключевые пункты

  • Чтобы сгенерировать код, измените настройку модели, чтобы указать, что решатель фиксированного шага затем выбирает системный конечный файл. Используя grt.tlc файл требует решателя фиксированного шага. Если модель содержит непрерывные блоки времени, можно использовать решатель переменного шага с системным конечным файлом rsim.tlc.

  • После отладки модели считайте конфигурирование модели со встраиванием параметра включенным.

  • Используйте функцию getActiveConfigSet, чтобы сохранить настройку модели для будущего использования или применить его к другой модели.

  • Прежде, чем сгенерировать код, рассмотрите проверку модели с Model Advisor.

  • Генератор кода помещает сгенерированные файлы в подпапку (model_grt_rtw) вашей рабочей папки.

Похожие темы