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