Подготовьте модель для генерации кода

Для настройки модели для генерации определенных конструкций C в вашем коде доступно несколько стандартных методов. Для подготовки вашей модели к генерации кода некоторые из этих методов включают: конфигурирование сигналов и портов, инициализацию состояний и настройку параметров конфигурации для генерации кода. В зависимости от компонентов вашей модели, некоторые из этих методов являются необязательными. Методы конфигурирования модели для генерации определенных конструкций C организованы по категориям, например, категория Поток Управления включает конструкции if-else, switch, for, и while. Обратитесь к имени конструкции, чтобы увидеть, как вы должны конфигурировать блоки и параметры в своей модели. Доступны различные методологии моделирования, такие как Simulink® блоки, Stateflow® графики и MATLAB Function блоки для реализации конструкции C.

Примеры моделей в шаблонах моделирования для кода С имеют следующие соглашения об именовании:

Моделируйте компонентыСоглашение об именовании
Исходные данныеu1, u2, u3, и так далее
Выходыy1, y2, y3, и так далее
Параметрыp1, p2, p3, и так далее
Государстваx1, x2, x3, и так далее

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

Сконфигурируйте входные порты, выходные порты и произвольные сигналы

  1. Создайте модель в Simulink. Для получения дополнительной информации см. «Интерактивное редактирование моделей».

  2. На вкладке Modeling нажмите Model Data Editor. Можно также использовать горячую клавишу Ctrl + Shift + E.

  3. Установите в раскрывающемся списке Change view значение Design.

  4. Используйте столбец Storage Class, чтобы применить класс памяти к сигналу.

    Например, применить класс памяти ExportedGlobal, что делает сигнал появляться в сгенерированном коде как отдельная глобальная переменная. Переменная имеет то же имя что и сигнал в модели.

Инициализация и настройка состояний

  1. В Model Data Editor на вкладке States используйте столбец Initial Value, чтобы задать начальные значения для состояния блока (такого как состояние Unit Delay блока).

  2. Установите в раскрывающемся списке Change view значение Code.

  3. Используйте столбец Name, чтобы присвоить состоянию имя.

  4. Используйте столбец Storage Class для применения класса памяти к состоянию.

Настройте параметры конфигурации для генерации кода

  1. На вкладке C Code щелкните Settings, чтобы открыть диалоговое окно Параметров конфигурации. Можно также использовать горячую клавишу Ctrl + E.

    Откройте диалоговое окно Параметра конфигурации, выбрав Simulation > Model Configuration parameters.

  2. Откройте панель Solver и выберите

    • Solver type: Fixed-Step

    • Solver: discrete (no continuous states)

  3. Откройте панель Optimization и установите для Default parameter behavior значение Inlined.

  4. Откройте панель Code Generation и задайте ert.tlc как System Target File.

  5. Очистить Generate makefile.

  6. Выберите Generate code only.

  7. Включите генерацию HTML отчета путем открытия области Code Generation > Report и выбора Create code generation report и Open report automatically. Щелкните горизонтальное многоточие и, под Advanced parameters, выберите Code-to-model. Включение генерации HTML опционально.

  8. Нажмите Apply, а затем OK для выхода.

Настройте модель примера с диаграммой Stateflow

Выполните эту общую процедуру, чтобы создать простую модель, содержащую диаграмму Stateflow.

  1. Из библиотеки Stateflow > Chart добавьте диаграмму Stateflow к модели.

  2. Добавьте Inport блоки и Outport блоки согласно модели примера.

  3. Откройте Stateflow Editor, выполнив одно из следующих действий:

    • Дважды кликните диаграмму Stateflow.

    • Нажмите Ctrl+R.

  4. Добавьте входы к графику, как описано в Add Stateflow Data (Stateflow).

  5. Задайте Name (u1, u2, ...) и Type (Inherit: Same as Simulink) для каждого входа, если в примере не указано по-разному.

  6. Добавьте выходы к графику, как описано в Add Stateflow Data (Stateflow).

  7. Задайте Name (y1, y2, ...) и Type (Inherit: Same as Simulink) для каждого выхода, если в примере не указано по-разному.

  8. В Stateflow Editor создайте схему Stateflow, характерную для примера.

  9. Входы и выходы появляются на графике в вашей модели.

  10. Соедините блоки Inport и Outport с диаграммой Stateflow.

  11. Сконфигурируйте входной и выходной сигналы; см. «Конфигурирование входных портов, выходных портов и произвольных сигналов».

Настройте модель примера с MATLAB Function блоком

  1. Добавьте количество блоков Inport и Outport в соответствии с примером конструкции на C, включенным в эту главу.

  2. Из библиотеки Simulink User-defined Functions перетащите блок MATLAB Function в модель.

  3. Дважды кликните блок. Откроется Редактор блоков MATLAB function. Отредактируйте функцию для реализации приложения.

  4. На вкладке Editor нажмите Save и закройте Блок MATLAB function Редактора.

  5. Соедините блоки Inport и Outport с блоком MATLAB Function. См. «Конфигурирование входных портов, выходных портов и произвольных сигналов».

  6. Сохраните модель.