exponenta event banner

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

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

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

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

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

В диаграммах, использующих MATLAB в качестве языка действий, можно вызывать функции MATLAB, поддерживаемые непосредственно для генерации кода. Для вызова внешних функций, которые не поддерживаются при создании кода, необходимо использовать coder.extrinsic (Кодер MATLAB). При объявлении функции с помощью 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, синусоидальная волна, и вход для состояния B u2, косинусная волна. Графическая функция out выводит значение heaviside функция для входа in.

Необходимо только объявить heaviside один раз в вашей диаграмме с использованием coder.extrinsic. После этого можно использовать heaviside функция в любом месте вашей диаграммы без coder.extrinsic. При создании кода функции, которые объявляются с помощью coder.extrinsic будет иметь вызов внешней функции, и эта функция не появится в сгенерированном коде.

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

См. также

(Кодер MATLAB) | (Панель инструментов «Символьная математика»)

Связанные темы