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

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

Цели обучения

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

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

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

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

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

Необходимые условия

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

  • Возможность задать параметры конфигурации модели.

  • Возможность использовать Simulink Model Advisor.

  • Возможность чтения кода С

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

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

rtwdemo_throttlecntrl файл модели

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

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

  1. Откройте rtwdemo_throttlecntrl и сохраните копию следующим образом throttlecntrl в доступном для записи месте на пути MATLAB. Затем откройте приложение Simulink Coder.

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

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

  3. Установите System target file параметра конфигурации модели в grt.tlc.

    Примечание

    Для строение GRT (Generic Real-Time Target) требуется решатель с фиксированным шагом. Однако rsim.tlc системный целевой файл поддерживает генерацию кода переменного шага.

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

  4. Установите параметр конфигурации модели Include directories следующим образом:

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

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

  5. Закройте диалоговое окно Параметры конфигурации модели (Model Configuration Parameters).

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

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

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

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

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

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

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

Для примера можно задать строение модели myModel для соответствия строения дроссельных моделей контроллеров открытием myModel и ввод:

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

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

Проверяйте условия модели и настройки строения

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

  1. Откройте throttlecntrl модели. Затем откройте приложение Simulink Coder.

  2. Запустите Model Advisor. На вкладке C Code нажмите C/C++ Code Advisor. Откроется диалоговое окно, показывающее иерархию системы модели.

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

  4. На правой панели выберите Run this check. Отчет показывает Run Summary, которая флагами проверяет предупреждения.

  5. Просмотрите отчет. Предупреждения освещают проблемы. На данной точке их можно игнорировать. Для получения дополнительной информации об отчетах смотрите View Model Advisor Check Reports.

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

  1. Откройте throttlecntrl. Затем откройте приложение Simulink Coder.

  2. Выберите Generate code only параметра конфигурации модели.

  3. Выберите параметр конфигурации модели Create code generation report и нажмите Apply.

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

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

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

  1. В отчете о генерации кода щелкните ссылку для сгенерированного файла модели C и проверьте сгенерированный код. Проверьте следующие элементы в отчете:

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

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

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

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

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

    • Моделируйте функции инициализации и завершения

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

  2. Сохраните и закройте throttlecntrl модели.

Рассмотрите следующие файлы. На панели Contents отчета генерации кода щелкните ссылки.

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

Дополнительные сведения см. в разделе Управление зависимостями файла процесса сборки.

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

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

  1. Откройте throttlecntrl. Затем откройте приложение Simulink Coder.

  2. Очистите Generate code only параметра конфигурации модели и нажмите Apply.

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

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

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

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

    ** starting the model **

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

Совет

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

Ключевые точки

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

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

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

  • Перед генерацией кода рассмотрите проверку модели с помощью Model Advisor.

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

Похожие темы