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