主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

mdlOutputs

计算该模块发出的信号

必需

语言

C、C++

语法

#define MDL_OUTPUTS
void mdlOutputs(SimStruct *S, int_T tid)

参量

S

表示 S-Function 模块的 SimStruct。

tid

任务 ID。

描述

Simulink® 引擎在每个仿真时间步骤调用此必需方法。该方法应计算当前时间步骤的 S-Function 输出,并将结果存储在 S-Function 的输出信号数组中。

tid(任务 ID)参量指定调用 mdlOutputs 例程时运行的任务。您可以在多速率 S-Function 模块的 mdlOutputs 例程中使用此参量来封装特定于任务的模块(参阅 Multirate S-Function Blocks)。

如果 S-Function 不包含特定于任务的模块,则使用 UNUSED_ARG 宏来指示 tid 输入参量是必需的但未在回调主体中使用。为此,请插入行

UNUSED_ARG(tid)

mdlOutputs 中的声明之后。

注意

如果您有 Simulink Coder™,则在为包含此方法的非内联 S-Function 生成代码时,请确保该方法未包装在 #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-Function 未内联,则 Simulink Coder 产品无法使用此方法,从而导致链接或运行时错误。

示例

有关与多个输入和输出端口一起使用的 mdlOutputs 例程的示例,请参阅 sfun_multiport.c

版本历史记录

在 R2006a 之前推出