Вычислите сигналы, что этот блок испускает
Да
C, C++
#define MDL_OUTPUTS
void mdlOutputs(SimStruct *S, int_T tid)
S
SimStruct, представляющий Блок s-function.
tid
ID задачи.
Механизм Simulink® вызывает этот требуемый метод на каждом шаге времени симуляции. Метод должен вычислить выходные параметры S-функции на шаге текущего времени и сохранить результаты в массивах выходного сигнала S-функции.
tid
(ID задачи) аргумент задает выполнение задачи, когда стандартная программа mdlOutputs
вызывается. Можно использовать этот аргумент в стандартной программе mdlOutputs
многоскоростного Блока s-function, чтобы инкапсулировать специфичные для задачи блоки кода (см. Многоскоростные Блоки s-function).
Используйте макрос UNUSED_ARG
, если S-функция не содержит специфичные для задачи блоки кода, чтобы указать, что входной параметр tid
требуется, но не используется в теле коллбэка. Для этого вставьте строку
UNUSED_ARG(tid)
после объявлений в mdlOutputs
.
Если у вас есть Simulink Coder™ при генерации кода для невстроенной S-функции, которая содержит этот метод, убедитесь, что метод не перенесен в оператор #if defined(MATLAB_MEX_FILE)
. Например:
#if defined(MATLAB_MEX_FILE) static void mdlOutputs(SimStruct *S) { /* Add mdlOutputs code here * } #endif
Оператор define
делает метод mdlOutputs
доступным только для файла MEX MATLAB®. Если S-функция не встраивается, продукт Simulink Coder не может использовать этот метод, приводящий к ссылке или ошибкам времени выполнения.
Для примера стандартной программы mdlOutputs
, которая работает с несколькими портами ввода и вывода, смотрите sfun_multiport.c
.
ssGetOutputPortComplexSignal
, ssGetOutputPortRealSignal
, ssGetOutputPortSignal
, Outputs