主要内容

mdlUpdate

更新块的状态

要求的

语言文字

C,C++

语法

#定义MDL_更新无效mdlUpdate(模拟构造*S,内部tid)

论据

s

表示S功能块的SimStruct。

工业贸易署

任务ID。

描述

Simu万博1manbetxlink®引擎在每个主要模拟时间步调用此可选方法。该方法应在当前时间步计算S函数的状态,并将状态存储在S函数的状态向量中。该方法还可以执行S功能在每个主要时间步需要执行的任何其他任务。

如果您的S函数有一个或多个离散状态,请使用此代码有直接的馈通。

这是因为大多数没有离散状态但有直接馈通的S函数没有更新函数。因此,引擎能够在这些情况下消除额外调用的需要。

如果您的C MEX S函数需要mdlUpdate调用例程,但它不满足上述两个条件中的任何一个,请使用ssSetNumDiscStates中的宏中密度作用

在C-MEX S-函数中工业贸易署(task ID)参数指定在计算输出已调用例程。您可以在mdlUpdate多速率S功能块的例程,用于封装特定于任务的代码块(参见多速率S功能块).

使用未使用的参数如果C MEX S函数不包含特定于任务的代码块,则表示工业贸易署输入参数是必需的,但未在回调正文中使用。为此,请插入行

未使用的参数(tid)

mdlUpdate.

笔记

如果你有万博1manbetxSimulink编码器™,为包含此方法的非线性C MEX S函数生成代码时,请确保该方法未包装在#如果已定义(MATLAB\u MEX\u文件)声明。例如:

#定义MDL_更新#如果已定义(MDL_更新)和已定义(MATLAB_MEX_文件)静态无效mdlUpdate(SimStruct*S,int_T tid){/*在此处添加mdlUpdate代码*/}#

这个定义声明使mdlUpdate方法仅适用于MATLAB®MEX文件。如果S函数未内联,万博1manbetxSimulink编码器无法使用此方法,导致链接或运行时错误。

实例

有关使用此函数更新离散状态的示例,请参见dsfunc.c. 有关使用此函数更新时变连续传递函数的传递函数系数的示例,请参见stvctf.c.

在R2006a之前引入