Для настройки модели для генерации определенных конструкций C в вашем коде доступно несколько стандартных методов. Для подготовки вашей модели к генерации кода некоторые из этих методов включают: конфигурирование сигналов и портов, инициализацию состояний и настройку параметров конфигурации для генерации кода. В зависимости от компонентов вашей модели, некоторые из этих методов являются необязательными. Методы конфигурирования модели для генерации определенных конструкций C организованы по категориям, например, категория Поток Управления включает конструкции if-else, switch, for, и while. Обратитесь к имени конструкции, чтобы увидеть, как вы должны конфигурировать блоки и параметры в своей модели. Доступны различные методологии моделирования, такие как Simulink® блоки, Stateflow® графики и MATLAB Function блоки для реализации конструкции C.
Примеры моделей в шаблонах моделирования для кода С имеют следующие соглашения об именовании:
| Моделируйте компоненты | Соглашение об именовании |
|---|---|
| Исходные данные | u1, u2, u3, и так далее |
| Выходы | y1, y2, y3, и так далее |
| Параметры | p1, p2, p3, и так далее |
| Государства | x1, x2, x3, и так далее |
Входные порты названы так, чтобы отражать имена сигналов, которые они распространяют.
Создайте модель в Simulink. Для получения дополнительной информации см. «Интерактивное редактирование моделей».
На вкладке Modeling нажмите Model Data Editor. Можно также использовать горячую клавишу Ctrl + Shift + E.
Установите в раскрывающемся списке Change view значение Design.
Используйте столбец Storage Class, чтобы применить класс памяти к сигналу.
Например, применить класс памяти ExportedGlobal, что делает сигнал появляться в сгенерированном коде как отдельная глобальная переменная. Переменная имеет то же имя что и сигнал в модели.
В Model Data Editor на вкладке States используйте столбец Initial Value, чтобы задать начальные значения для состояния блока (такого как состояние Unit Delay блока).
Установите в раскрывающемся списке Change view значение Code.
Используйте столбец Name, чтобы присвоить состоянию имя.
Используйте столбец Storage Class для применения класса памяти к состоянию.
На вкладке C Code щелкните Settings, чтобы открыть диалоговое окно Параметров конфигурации. Можно также использовать горячую клавишу Ctrl + E.
Откройте диалоговое окно Параметра конфигурации, выбрав Simulation > Model Configuration parameters.
Откройте панель Solver и выберите
Solver type: Fixed-Step
Solver: discrete (no continuous states)
Откройте панель Optimization и установите для Default parameter behavior значение Inlined.
Откройте панель Code Generation и задайте ert.tlc как System Target File.
Очистить Generate makefile.
Выберите Generate code only.
Включите генерацию HTML отчета путем открытия области Code Generation > Report и выбора Create code generation report и Open report automatically. Щелкните горизонтальное многоточие и, под Advanced parameters, выберите Code-to-model. Включение генерации HTML опционально.
Нажмите Apply, а затем OK для выхода.

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

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