Stateflow® графики в Simulink® модели имеют свойство языка действий, которое задает синтаксис для действий состояния и перехода. Значок в левом нижнем углу холста графика указывает язык действий для графика.
MATLAB® как язык действий.
C как язык действия.
В графиках, которые используют C в качестве языка действий, можно вызвать встроенные функции MATLAB и получить доступ к переменным рабочего пространства MATLAB при помощи ml
оператор пространства имен или ml
функция. Для получения дополнительной информации смотрите Доступ к функциям MATLAB и Данные рабочей области в графиках С.
В графиках, которые используют 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
, a синусоиды, и вход для состояния B u2
, косинусоидная волна. Графическая функция out
выводит значение heaviside
функция для входа in
.
Вам нужно только объявить heaviside
один раз на графике с помощью coder.extrinsic
. После этого можно использовать heaviside
функция в любом месте на графике без coder.extrinsic
. При генерации кода функции, которые вы объявляете используемыми coder.extrinsic
будет иметь вызов внешней функции, и эта функция не появится в сгенерированном коде.
Чтобы визуализировать результат этого графика, откройте возможности.
coder.extrinsic
(MATLAB Coder) | heaviside
(Symbolic Math Toolbox)