参数的函数
LibBlockMatrixParameter
LibBlockMatrixParameter(param, rucv, rlcv, ridx, cucv, clcv, cidx)
给定行和列用户控制变量(rucv
,cucv
),循环控制变量(rlcv
,clcv
)和索引(ridx
,cidx
).一般来说,块应该使用LibBlockParameter
.如果你有一个矩阵参数,你应该把它写成一个列主向量,通过访问它LibBlockParameter
.
请注意
目前不支持循环滚动,如果被请求,将生成一个错误金宝apprlcv
或clcv
不等于""
).
行的索引参数和列索引参数类似于LibBlockParameter
.列索引(cidx
)重载以处理复数。
看到LibBlockMatrixParameter
在paramlib.tlc
.
LibBlockMatrixParameterAddr
LibBlockMatrixParameterAddr(param, rucv, rlcv, ridx, cucv, clcv, cidx)
返回矩阵参数的地址。
请注意
LibBlockMatrixParameterAddr
返回矩阵参数的地址。不支持循环滚动(即,金宝apprlcv
而且clcv
都应该是空字符串)。
看到LibBlockMatrixParameterAddr
在paramlib.tlc
.
LibBlockMatrixParameterBaseAddr
LibBlockMatrixParameterBaseAddr(参数)
返回矩阵参数的基址。
看到LibBlockMatrixParameterBaseAddr
在paramlib.tlc
.
LibBlockParamSetting
LibBlockParamSetting (bType psType)
返回指定块类型的指定参数设置的字符串。如果将空块类型传递给此函数,则参数设置将假定为ParamSettings
块的记录。如果将非空块类型传递给函数,则参数设置将假定为% < Btype > ParamSettings
该块的记录。
看到LibBlockParamSetting
在paramlib.tlc
.
LibBlockParameter
根据参数引用(参数
),用户控件变量(ucv
),循环控制变量(液位控制阀
),则信号指数(sigIdx
),参数内联状态,LibBlockParameter(参数,ucv, lcv, sigIdx)
返回对块参数的引用。返回值是有效的右值
(表达式的右边值)。例如,
情况下 | 函数调用 | 可以生产 |
---|---|---|
1 |
LibBlockParameter(增益,“i”,lcv, sigIdx) |
rtP.blockname[我] |
2 |
LibBlockParameter(增益,“i”,lcv, sigIdx) |
rtP.blockname |
3. |
LibBlockParameter(增益,"",lcv, sigIdx) |
p_Gain[我] |
4 |
LibBlockParameter(增益,"",lcv, sigIdx) |
p_Gain |
5 |
LibBlockParameter(增益,"",lcv, sigIdx) |
4.55 |
6 |
LibBlockParameter(增益,"",lcv, sigIdx) |
rtP.blockname.re |
7 |
LibBlockParameter(增益,"",lcv, sigIdx) |
rtP.blockname.im |
的基本工作原理LibBlockParameter
,设非复向量信号,其中获得[0]= 4.55
:
LibBlockParameter(增益,"","i", 0)
情况下 | 滚动 | 内联参数 | 类型 | 结果 | 内存要求 |
---|---|---|---|---|---|
1 |
0 |
是的 |
标量 |
4.55 | 没有 |
2 |
1 |
是的 |
标量 |
4.55 | 没有 |
3. |
0 |
是的 |
向量 |
4.55 | 没有 |
4 |
1 |
是的 |
向量 |
p_Gain[我] |
是的 |
5 |
0 |
没有 |
标量 |
rtP.blk.Gain |
没有 |
6 |
0 |
没有 |
标量 |
rtP.blk.Gain |
没有 |
7 |
0 |
没有 |
向量 |
rtP.blk.prm [0] |
没有 |
8 |
0 |
没有 |
向量 |
p.Gain[我] |
是的 |
注意案例4。即使Inline Parameter是Yes,该参数也必须放在内存(RAM)中,因为它是在内存中访问的为
循环。
请注意
LibBlockParameter
还支持与内金宝app联参数和参数调优一起使用的表达式。
例如,如果参数字段有MATLAB®表达式“2 *”
,LibBlockParameter
会返回C表达式吗的(2 *)
.支持的函数列表金宝appLibBlockParameter
是由函数决定的FcnConvertNodeToExpr
而且FcnConvertIdToFcn
.为了增强功能,可以增强或更新这些功能中的任何一个。
注意,某些类型的表达式不受支持,例如金宝appx * y
在哪里这两个x
而且y
为非标量表达式。
有关支持的确切函数和语法的详细信息,请参阅有关可调参数的文档。金宝app
警告
不要使用LibBlockParameter
访问参数的地址,或者可能会错误地引用一个数字(即,&4.55
)当参数是内联的。你可以通过使用LibBlockParameterAddr
.
看到LibBlockParameter
在paramlib.tlc
.
LibBlockParameterAddr
LibBlockParameterAddr(参数,ucv, lcv, idx)
返回块参数的地址。
使用LibBlockParameterAddr
时访问参数InlineParams
Variable = 1将导致变量被声明常量
而不是内联。
当表达式中有多个可调/滚动变量时,访问该表达式的地址将导致错误。
看到LibBlockParameterAddr
在paramlib.tlc
.
LibBlockParameterBaseAddr
LibBlockParameterBaseAddr(参数)
返回块参数的基址。
使用LibBlockParameterBaseAddr
时访问参数InlineParams
变量等于1将导致变量被声明常量
而不是内联。
当表达式中有多个可调/滚动变量时,访问该表达式的地址将导致错误。
看到LibBlockParameterBaseAddr
在paramlib.tlc
.
LibBlockParameterDataTypeId
LibBlockParameterDataTypeId(参数)
返回与指定块参数的数据类型对应的数字ID。
看到LibBlockParameterDataTypeId
在paramlib.tlc
.
LibBlockParameterDataTypeName
雷姆LibBlockParameterDataTypeName(参数)
返回与指定块参数对应的数据类型的名称。
看到LibBlockParameterDataTypeName
在paramlib.tlc
.
LibBlockParameterDimensions
LibBlockParameterDimensions(参数)
返回长度的行向量N
(N >= 1
)给出参数数据的维数。
例如,
%assign dims = LibBlockParameterDimensions("paramName") %assign nDims = SIZE(dims,1) %foreach i=nDims /* Dimension % = %*/ %endforeach
LibBlockParameterDimensions
不同于LibBlockParameterSize
对象折叠之前,它返回参数数据的维度矩阵
列主向量的参数。已指定它们的运行时参数将发生折叠outputAsMatrix
字段作为假
.
看到LibBlockParameterDimensions
在paramlib.tlc
.
LibBlockParameterIsComplex
LibBlockParameterIsComplex(参数)
如果指定的块参数复杂,则返回1,否则返回0。
看到LibBlockParameterIsComplex
在paramlib.tlc
.
LibBlockParameterSize
LibBlockParameterSize(参数)
返回格式中大小为2的向量(nRows, nCols)
在哪里nRows
行数是和吗nCols
是列数。
看到LibBlockParameterSize
在paramlib.tlc
.
LibBlockParameterString
基于块参数引用(参数
),LibBlockParameterString(参数)
返回以字符串形式解释的指定块参数,例如,此函数返回:
STRINGOF (param.Value [0])
如果参数是行矩阵STRINGOF (param.Value)
否则
请注意
如果使用矩阵值形参且有多行,则会出错。
如果您只使用LibBlockParameterValue
或LibBlockParameterString
,考虑将参数从可调转换为不可调。然后,用ssWriteRTWParamSettings
将参数的值写入
文件。内联参数可以减少RAM的使用,因为代码生成器在生成的代码中使用参数的数值,而不是它们的符号名称。模型
.rtw
看到LibBlockParameterString
在paramlib.tlc
.
LibBlockParameterValue
基于块参数引用(参数
)和数组的索引元素(elidx
),elIdx LibBlockParameterValue(参数)
返回参数的数值。您可以使用LibBlockParameterWidth(参数)
函数获取数组的宽度,然后使用elidx
(有效的0
来宽度
)来获取数组中的一个特定元素。
如果您只使用LibBlockParameterValue
或LibBlockParameterString
,考虑将参数从可调转换为不可调。然后,用ssWriteRTWParamSettings
将参数的值写入
文件。内联参数可以减少RAM的使用,因为代码生成器在生成的代码中使用参数的数值,而不是它们的符号名称。模型
.rtw
例子
如果你想根据块的参数为不同的积分器生成代码,你可以使用以下方法:
%assign mode = LibBlockParameterValue(Integrator, 0) %switch (mode) %case 1 %%break %case 2 % %break %default错误:无法识别的Integrator值。%打破% endswitch
看到LibBlockParameterValue
在paramlib.tlc
.
LibBlockParameterWidth
LibBlockParameterWidth(参数)
返回参数的元素个数(宽度)。
看到LibBlockParameterWidth
在
.paramlib.tlc