Сгенерируйте код С для модели

Чтобы сгенерировать код C or C++ из Simulink® модели, Stateflow® графики и MATLAB® functions, использовать продукт Simulink Coder™. Используйте сгенерированный код в приложениях, таких как ускорение симуляции, быстрое прототипирование и симуляции оборудования в цикле (HIL).

Если вы новичок в Simulink Coder или ваши требования к индивидуальной настройке кода приложения минимальны, можно использовать графические инструменты и настройки конфигурации модели по умолчанию, чтобы быстро сгенерировать код.

Генерация и просмотр кода могут быть такими же простыми, как и подготовка модели к генерации кода с помощью инструмента Quick Start. Затем, используя инструменты кода, доступные из Редактор, можно сконфигурировать интерфейсы данных, инициировать генерацию кода и проверить сгенерированный код.

Это руководство использует пример модели rtwdemo_secondOrderSystem.

Откройте модель, введя имя модели в Командном окне.

rtwdemo_secondOrderSystem

Модель реализует физическую систему второго порядка, называемую идеальной системой масса-пружина-демпфер. Gain блоки представляют компоненты системного уравнения: Mass, Stiffness, и Damping. Уравнение для системы mX "+ cX '+ kX = f (t).

  • m = масса системы (1.0E-6 кг)

  • c = коэффициент затухания (4,0e-4 Нс/м)

  • k = жесткость пружины (1,0 Н/м)

  • f(t) = принудительная функция в x-направлении (N)

Блок Signal Generator вводит форму квадратной волны с амплитудой 4 и частотой 20 Гц. Блок использует время симуляции в качестве источника значений для переменной времени формы волны. Поскольку модель сконфигурирована с решателем с фиксированным шагом, который необходим для генерации кода, Simulink использует тот же размер шага для всей симуляции. Последовательный размер шага обеспечивает равномерно выбранное представление идеальной формы волны.

Пример модели показывает, как можно использовать блоки MATLAB Function для интеграции существующего кода функции MATLAB в модели Simulink, из которых можно сгенерировать встраиваемый код С Блок MATLAB function в модели примера интегрирует функцию MATLAB, которая вычисляет сумму переменных компонента.

Блоки Integrator вычисляют интегралы блока MATLAB Function выхода относительно времени. Решатель вычисляет выход блока Integrator в текущем временном шаге, используя текущее входное значение и значение состояния на предыдущем временном шаге. Чтобы поддержать эту вычислительную модель, блок Integrator сохраняет свой выход в текущем временном шаге для использования решателем, чтобы вычислить его выход на следующем временном шаге. Блок также предоставляет решателю начальное условие для использования при вычислении начального состояния блока в начале симуляции. Начальным условием по умолчанию и настройкой для этой модели примера является 0.

Блоки приборной панели, Knob и Dashboard Scope, обеспечивают визуальную оснастку для настройки демпфирования и мониторинга формы волны. Блок Knob соединяется с Damping Gain блок. Блок Dashboard Scope соединяется с сигналами Force: f(t):1 и X.

Используйте эту модель, чтобы узнать, как:

  1. Сгенерируйте код с помощью инструмента Simulink Coder Quick Start.

  2. Проверьте, соответствуют ли сгенерированные результаты исполняемой программы результатам симуляции.

  3. Настройте параметр во время выполнения программы.

  4. Развертывание кода прототипа и программных продуктов.

Чтобы запустить руководство, см. «Генерация кода С» при помощи Simulink Coder Quick Start Tool.