mdlProcessParameters
处理C墨西哥人s函数的参数
要求
没有
语言
C, c++
语法
#定义MDL_PROCESS_PARAMETERS空白mdlProcessParameters (SimStruct *年代)
参数
-
年代
-
SimStruct代表一个功能块。
描述
这是一个可选的常规模型万博1manbetx®引擎调用后mdlCheckParameters
更改和验证参数。顶部的处理的模拟循环过程改变参数时安全的。这个函数只适用于模拟。C墨西哥人S-functions必须附上的方法#如果定义(MATLAB_MEX_FILE)
声明。
这个例程的目的是处理新变化的参数。一个例子是缓存参数向量变化的工作。发动机不使用时调用这个例程万博1manbetx仿真软件编码器™产品。因此,如果使用这个例程的功能为使用而设计的万博1manbetx仿真软件编码器产品,你必须写你的s函数,它不依赖于这个例程。要做到这一点,你必须内联函数通过使用目标语言的编译器。内联S-functions的信息,请参阅内联S-Functions(万博1manbetx仿真软件编码器)。
例子
这个示例处理特征向量参数mdlCheckParameters
已验证的形式“+ + +”
(可能有任意数量的“+”
或“- - -”
字符)。
#定义MDL_PROCESS_PARAMETERS / *变化# undef去除函数* / #如果定义(MDL_PROCESS_PARAMETERS) & & (MATLAB_MEX_FILE)定义静态空mdlProcessParameters (SimStruct * S) {int_T我;char_T * plusMinusStr;int_T nInputPorts = ssGetNumInputPorts(年代);int_T * iwork = ssGetIWork(年代);如果((plusMinusStr = (char_T *) malloc (nInputPorts + 1)) = = NULL) {ssSetErrorStatus(年代,“mdlStart内存分配错误”);返回;}如果(mxGetString (SIGNS_PARAM (S), plusMinusStr, nInputPorts + 1) ! = 0){自由(plusMinusStr);ssSetErrorStatus(年代,“mdlStart mxGetString错误”);返回;}(i = 0; i < nInputPorts; i++) { iwork[i] = plusMinusStr[i] == '+'? 1: -1; } free(plusMinusStr); } #endif /* MDL_PROCESS_PARAMETERS */
mdlProcessParameters
被称为从mdlStart
加载信号特征向量开始之前的模拟循环。
#定义MDL_START #如果定义(MDL_START)静态孔隙mdlStart (SimStruct * S) {mdlProcessParameters(年代);}# endif / * MDL_START * /
之前介绍过的R2006a
这个主题有帮助吗?