文档

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

这个主题有帮助吗?