指定块的模式向量的大小
int_T ssSetNumModes(SimStruct *S, int_T nModes)
年代
表示s -功能块的SimStruct。
nModes
表示的块的模式向量的大小年代
.有效的值0
,一个正整数,或DYNAMICALLY_SIZED
.
指定的模式数nModes
,或-1
如果DYNAMICALLY_SIZED
.
设置块的模式向量的大小为nModes
.模式向量的元素初始化为零
直到使用ssSetModeVectorValue
或通过获取的指针ssGetModeVector
.
如果nModes
是DYNAMICALLY_SIZED
,可以指定真正的(正整数)宽度mdlSetWorkWidths
;否则,所使用的宽度为通过该块的信号的宽度。在mdlInitializeSizes
指定数目int_T
模式向量中的元素。的仿真软金宝app件®引擎分配模式向量并将其元素初始化为0。如果默认值0不合适,可以将数组元素设置为mdlInitializeConditions
.使用ssGetModeVector
来访问模式向量。
模式向量与过零检测相结合,可以根据输入或输出信号的电流值创建具有不同工作模式的块。例如,考虑一个输出其输入绝对值的块。这样的块以两种不同的模式运行,这取决于它的输入是正的还是负的。如果输入是正的,则块输出不变的输入。如果输入是负数,则块输出输入的负数。您可以使用过零检测来检测输入什么时候改变符号,并相应地更新单元素模式向量(例如,将其元素设置为0表示负输入,1表示正输入)。然后你可以使用模式向量mdlOutputs
以确定块当前操作的模式。
C, c++
看到这个功能sfun_zc.c
中使用的sfcndemo_sfun_zc
和功能sfun_zc_sat.c
中使用的sfcndemo_sfun_zc_sat
.