Вызов внешних функций MATLAB в диаграммах Stateflow

Stateflow® графики в Simulink® модели имеют свойство языка действий, которое задает синтаксис для действий состояния и перехода. Значок в левом нижнем углу холста графика указывает язык действий для графика.

  • MATLAB® как язык действий.

  • C как язык действия.

В графиках, которые используют C в качестве языка действий, можно вызвать встроенные функции MATLAB и получить доступ к переменным рабочего пространства MATLAB при помощи ml оператор пространства имен или ml функция. Для получения дополнительной информации смотрите Доступ к функциям MATLAB и Данные рабочей области в графиках С.

В графиках, которые используют MATLAB в качестве языка действий, можно вызвать функции MATLAB, поддерживаемые для генерации кода непосредственно. Чтобы вызвать внешние функции, которые не поддерживаются для генерации кода, необходимо использовать coder.extrinsic (MATLAB Coder) функция. Когда вы объявляете функцию с coder.extrinisic (function_name)Stateflow создает вызов функции во время симуляции. На диаграмме Stateflow вы только объявляете 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 будет иметь вызов внешней функции, и эта функция не появится в сгенерированном коде.

Чтобы визуализировать результат этого графика, откройте возможности.

См. также

(MATLAB Coder) | (Symbolic Math Toolbox)

Похожие темы