Графики Stateflow® в моделях Simulink® имеют свойство языка действия, которое задает синтаксис для действий перехода и состояния. Значок в нижнем левом углу холста графика указывает на язык действия для графика.
MATLAB® как язык действия.
C как язык действия.
В графиках, которые используют C в качестве языка действия, можно вызвать встроенные функции MATLAB и переменные рабочего пространства MATLAB доступа при помощи ml
оператор пространства имен или ml
функция. Для получения дополнительной информации смотрите доступ к функциям MATLAB и Данным о Рабочей области в Графиках C.
В графиках, которые используют MATLAB в качестве языка действия, можно вызвать функции MATLAB, поддержанные для генерации кода непосредственно. Чтобы вызвать внешние функции, которые не поддерживаются для генерации кода, необходимо использовать coder.extrinsic
(MATLAB Coder) функция. Когда вы объявляете функцию с coder.extrinisic (
, Stateflow создает вызов функции в процессе моделирования. В диаграмме Stateflow вы только объявляете function_name
)coder.extrinsic
однажды. Вы не можете объявить зарезервированные слова с coder.extrinsic
. Для получения дополнительной информации см. Правила для Именования Объектов Stateflow.
Для графиков, которые включают атомарные субдиаграммы, необходимо объявить функции, которые не поддерживаются для генерации кода с coder.extrinsic
отдельно в атомарной субдиаграмме.
coder.extrinsic
ФункцияВключить вызовы внешнего функционального
, эта модель использует heaviside
(Symbolic Math Toolbox)coder.extrinsic
.
График содержит два параллельных состояния, A и B, и один блок графической функции, foo
. Состояние A объявляет функциональный heaviside
, который не поддерживается для генерации кода, при помощи coder.extrinsic
. Состояние B и блок графической функции также используют heaviside
без coder.extrinsic
.
Входом для состояния A является u1
, синусоидой и входом для состояния B является u2
, волна косинуса. Графическая функция out
выводит значение heaviside
функция для входа in
.
Только необходимо объявить heaviside
однажды в вашем графике с помощью coder.extrinsic
. После этого можно использовать heaviside
функционируйте где угодно в рамках вашего графика без coder.extrinsic
. Когда генерация кодирует функции, что вы объявляете использование coder.extrinsic
будет иметь вызов внешней функции, и эта функция не появится в сгенерированном коде.
Чтобы визуализировать результат этого графика, откройте осциллограф.
coder.extrinsic
(MATLAB Coder) | heaviside
(Symbolic Math Toolbox)