更新块的状态
不
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编码器无法使用此方法,导致链接或运行时错误。