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

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

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

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

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

В графиках, которые используют 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, синусоидой и входом для состояния B является u2, волна косинуса. Графическая функция out выводит значение heaviside функция для входа in.

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

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

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

(MATLAB Coder) | (Symbolic Math Toolbox)

Похожие темы