Вызовите внешние функции 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 будет иметь вызов внешней функции, и эта функция не появится в сгенерированном коде.

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

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

|

Похожие темы