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

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

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

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

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

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

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

Смотрите также

|

Похожие темы