Несколько стандартных методов доступны для подготовки модели, чтобы сгенерировать определенные построения C в вашем коде. Для подготовки вашей модели для генерации кода некоторые из этих методов включают: конфигурирование сигналов и портов, инициализация состояний и параметров конфигурации подготовки для генерации кода. В зависимости от компонентов вашей модели некоторые из этих методов являются дополнительными. Методы для конфигурирования модели, чтобы сгенерировать определенные построения C организованы по категориям, например, категория Потока управления включает, создает if-else
, switch
для
, и while
. Обратитесь к имени построения, чтобы видеть, как необходимо сконфигурировать блоки и параметры в модели. Различные методологии моделирования доступны, таковы как блоки Simulink®, графики Stateflow® и блоки MATLAB Function, которые реализуют построение C.
Примеры модели в Моделировании Шаблонов для кода С имеют следующие соглашения о присвоении имен:
Компоненты модели | Соглашение о присвоении имен |
---|---|
Входные параметры | u1 , u2 , u3 , и так далее |
Выходные параметры | y1 , y2 , y3 , и так далее |
Параметры | p1 , p2 , p3 , и так далее |
Состояния | x1 x2 , x3 , и так далее |
Input port называют, чтобы отразить имена сигнала, которые они распространяют.
Создайте модель в Simulink. Для получения дополнительной информации смотрите Интерактивное Редактирование моделей (Simulink).
На вкладке Modeling нажмите Model Data Editor. Можно также использовать горячую клавишу Ctrl + Shift + E.
В Model Data Editor, на вкладке Inports/Outports или вкладке Signals, используют столбец Signal Name, или столбец Name, чтобы дать цель сигнализируют об имени.
Установите Change view выпадающий список на Code
.
Используйте столбец Storage Class, чтобы применить класс памяти к сигналу.
Например, примените класс памяти ExportedGlobal
, который заставляет сигнал появиться в сгенерированном коде как отдельная глобальная переменная. Переменная имеет то же имя как сигнал в модели.
В Model Data Editor, на вкладке States, используют столбец Initial Value, чтобы задать начальные значения для состояния блока (такие как состояние блока Unit Delay).
Установите Change view выпадающий список на Code
.
Используйте столбец Name, чтобы дать состоянию имя.
Используйте столбец Storage Class, чтобы применить класс памяти к состоянию.
На вкладке C Code нажмите Settings, чтобы открыть диалоговое окно Configuration Parameters. Можно также использовать горячую клавишу Ctrl + E.
Откройте диалоговое окно Configuration Parameter путем выбора 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.
Выберите Chart > Add Inputs & Outputs > Data Input from Simulink, чтобы добавить входные параметры в график. Диалоговое окно Data открывается для каждого входа.
Задайте
(u1, u2, ...)
Name и Type (
Inherit: Same as Simulink
) для каждого входа, если не задано по-другому в примере. Нажмите OK.
Нажмите Apply и закройте каждое диалоговое окно.
Выберите Chart > Add Inputs & Outputs > Data Output from Simulink, чтобы добавить выходные параметры в график. Диалоговое окно Данных открывается для каждого выхода.
Задайте
(y1, y2, ...)
Name и Type (
Inherit: Same as Simulink
) для каждого выхода, если не задано по-другому в примере. Нажмите OK.
Нажмите Apply и закройте каждое диалоговое окно.
В Stateflow Editor создайте схему Stateflow, характерную для примера.
Вводы и выводы появляются на графике в вашей модели.
Соедините блоки Inport и Outport с диаграммой Stateflow.
Сконфигурируйте сигналы ввода и вывода; смотрите Конфигурируют Input port, Выходные порты и Произвольные Сигналы.
Добавьте количество Inport и блоков Outport согласно примеру построения C, включенному в эту главу.
От Simulink Пользовательская библиотека Functions перетаскивают блок MATLAB Function в модель.
Дважды кликните блок. Редактор блока MATLAB function открывается. Отредактируйте функцию, чтобы реализовать ваше приложение.
На вкладке Editor нажмите Save и закройте Редактор блока MATLAB function.
Соедините блоки Inport и Outport с блоком MATLAB Function. Смотрите Конфигурируют Input port, Выходные порты и Произвольные Сигналы.
Сохраните свою модель.