Графики Stateflow® в моделях Simulink® имеют свойство языка действия, которое задает синтаксис для действий перехода и состояния. Значок в нижнем левом углу холста графика указывает на язык действия для графика.
MATLAB® как язык действия.
C как язык действия.
В графиках, которые используют C в качестве языка действия, можно вызвать встроенные функции MATLAB и переменные рабочего пространства MATLAB доступа при помощи оператора пространства имен ml
или функции ml
. Для получения дополнительной информации смотрите доступ к функциям MATLAB и Данным о Рабочей области в Графиках C.
В графиках, которые используют MATLAB в качестве языка действия, можно вызвать функции MATLAB, поддержанные для генерации кода непосредственно. Чтобы вызвать внешние функции, которые не поддерживаются для генерации кода, необходимо использовать функцию coder.extrinsic
. Когда вы объявляете функцию с
, Stateflow создает вызов функции во время симуляции. В диаграмме Stateflow вы только объявляете coder.extrinisic(function_name)
coder.extrinsic
однажды. Вы не можете объявить зарезервированные слова с coder.extrinsic
. Для получения дополнительной информации см. Правила для Именования Объектов Stateflow.
Для графиков, которые включают атомарные подграфики, необходимо объявить функции, которые не поддерживаются для генерации кода с coder.extrinsic
отдельно в рамках атомарного подграфика.
coder.extrinsic
Чтобы создать призыв к внешнему функциональному heaviside
, эта модель использует 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
будет иметь вызов внешней функции, и эта функция не появится в сгенерированном коде.
Чтобы визуализировать результат этого графика, откройте осциллограф.