Для настройки модели для генерации определенных конструкций 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. См. «Конфигурирование входных портов, выходных портов и произвольных сигналов».
Сохраните модель.