Графики 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 будет иметь вызов внешней функции, и эта функция не появится в сгенерированном коде.
Чтобы визуализировать результат этого графика, откройте осциллограф.
