Существует несколько стандартных методов настройки модели для создания определенных конструкций C в коде. Для подготовки модели к генерации кода некоторые из этих методов включают в себя настройку сигналов и портов, инициализацию состояний и настройку параметров конфигурации для генерации кода. В зависимости от компонентов модели некоторые из этих методов являются необязательными. Методы конфигурирования модели для генерации конкретных конструкций C организованы по категориям, например, категория «Поток управления» включает конструкции if-else, switch, for, и while. Для получения сведений о настройке блоков и параметров в модели см. имя конструкции. Для реализации конструкции C доступны различные методологии моделирования, такие как блоки Simulink ®, диаграммы Stateflow ® и функциональные блоки MATLAB.
Примеры моделей в разделе Моделирование шаблонов для кода C имеют следующие соглашения по присвоению имен:
| Компоненты модели | Соглашение об именовании |
|---|---|
| Исходные данные | u1, u2, u3и так далее |
| Продукция | y1, y2, y3и так далее |
| Параметры | p1, p2, p3и так далее |
| Государства | x1, x2, x3и так далее |
Входные порты называются для отражения распространяемых ими имен сигналов.
Создание модели в Simulink. Дополнительные сведения см. в разделе Интерактивное редактирование модели.
На вкладке Моделирование (Modeling) щелкните Редактор данных модели (Model Data Editor). Можно также использовать сочетание клавиш Ctrl + Shift + E.
Установите в раскрывающемся списке Изменить представление значение Design.
Используйте столбец Storage Class для применения класса хранения к сигналу.
Например, примените класс хранения ExportedGlobal, в результате чего сигнал появляется в сгенерированном коде как отдельная глобальная переменная. Имя переменной совпадает с именем сигнала в модели.
В Редакторе данных модели (Model Data Editor) на вкладке Состояния (States) используйте столбец Начальное значение (Initial Value), чтобы указать начальные значения для состояния блока (например, состояние блока Единичная задержка (Unit Delay)).
Установите в раскрывающемся списке Изменить представление значение Code.
Используйте столбец Имя (Name), чтобы задать имя состояния.
Используйте столбец Класс хранилища, чтобы применить класс хранилища к состоянию.
На вкладке Код C (C Code) щелкните Настройки (Settings), чтобы открыть диалоговое окно Параметры конфигурации (Configuration Parameters). Можно также использовать сочетание клавиш Ctrl + E.
Откройте диалоговое окно Параметр конфигурации (Configuration Parameter), выбрав Моделирование (Simulation) > Параметры конфигурации модели (Model Configuration parameters).
Откройте панель «Решатель» и выберите
Тип решателя: Fixed-Step
Решатель: discrete (no continuous states)
Откройте панель Оптимизация (Optimization) и задайте для параметра Поведение по умолчанию (Default parameter behavior) значение Inlined.
Откройте панель «Создание кода» и укажите ert.tlc в качестве системного целевого файла.
Снимите флажок «Создать make-файл».
Выберите Только генерировать код.
Включите создание HTML-отчета, открыв панель Создание кода > Отчет и выбрав Создать отчет о создании кода и Открыть отчет автоматически. Щелкните на горизонтальном многоточии и в разделе Дополнительные параметры выберите Код для модели. Включение генерации HTML-отчета является необязательным.
Нажмите кнопку Применить, а затем кнопку ОК, чтобы выйти.

Выполните эту общую процедуру, чтобы создать простую модель, содержащую диаграмму Stateflow.
В библиотеке Stateflow > Chart добавьте диаграмму Stateflow в модель.
Добавьте блоки Inport и Outport в соответствии с моделью примера.
Откройте редактор Stateflow, выполнив одно из следующих действий.
Дважды щелкните диаграмму Stateflow.
Нажмите Ctrl + R.
Добавьте входные данные в диаграмму, как описано в разделе Добавление данных потока состояний (Stateflow).
Укажите имя
(u1, u2, ...) и тип (Inherit: Same as Simulink) для каждого ввода, если в примере не указано иное.
Добавьте выходные данные в диаграмму, как описано в разделе Добавление данных потока состояний (Stateflow).
Укажите имя
(y1, y2, ...) и тип (Inherit: Same as Simulink) для каждого выхода, если в примере не указано иное.
В редакторе Stateflow создайте схему Stateflow, специфичную для данного примера.
Входные и выходные данные отображаются на диаграмме в модели.
Подключите блоки Inport и Outport к диаграмме потока состояний.
Сконфигурируйте входные и выходные сигналы; см. раздел Настройка портов ввода, портов вывода и произвольных сигналов.

Добавьте количество блоков Inport и Outport в соответствии с примером конструкции C, включенным в эту главу.
Из библиотеки Simulink User-defined Functions перетащите в модель блок MATLAB Function.
Дважды щелкните блок. Откроется редактор функциональных блоков MATLAB. Отредактируйте функцию для реализации приложения.
На вкладке Редактор (Editor) щелкните Сохранить (Save) и закройте редактор функциональных блоков MATLAB.
Подключите блоки Inport и Outport к функциональному блоку MATLAB. См. раздел Настройка портов ввода, портов вывода и произвольных сигналов.
Сохраните модель.