Чтобы сгенерировать код C or C++ из моделей Simulink®, графики Stateflow® и функции MATLAB®, используют продукт Simulink Coder™. Используйте сгенерированный код в приложениях, таких как ускорение симуляции, быстрое прототипирование и оборудование в цикле (HIL) симуляции.
Если вы плохо знакомы с Simulink Coder, или ваши требования индивидуальной настройки кода приложения минимальны, можно использовать графические инструменты и настройки конфигурации модели по умолчанию, чтобы быстро сгенерировать код.
Генерация и рассмотрение кода могут быть столь же простыми как подготовка модели для генерации кода с инструментом Quick Start. Затем с помощью инструментов кода, доступных из Редактора Simulink, можно сконфигурировать интерфейсы данных, инициировать генерацию кода и проверить сгенерированный код.
Этот пример использует модель rtwdemo_secondOrderSystem
в качестве примера.
Откройте модель путем ввода имени модели в Командном окне.
rtwdemo_secondOrderSystem
Реализации модели физическая система второго порядка вызвали идеальную систему массового пружинного демпфера. блоки Gain представляют компоненты системного уравнения: Mass
, Stiffness
, и Damping
. Уравнение для системы.
m
= масса системы (1.0E-6 kg)
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
.
Вы используете эту модель, чтобы учиться как:
Сгенерируйте код при помощи инструмента Simulink Coder Quick Start.
Проверьте, заканчивается ли сгенерированная исполняемая программа результаты симуляции соответствия.
Настройте параметр во время выполнения программы.
Разверните прототипный код и артефакты.
Чтобы запустить пример, смотрите, Генерируют Код при помощи Инструмента Быстрого запуска Simulink Coder.