生成代码中块参数可调性的限制
一个块参数,MATLAB®变量或者金宝app仿真软件。参数
对象是可调的,如果它在生成的代码中作为存储在内存中的数据出现,例如全局变量。例如,当应用存储类时ExportedGlobal
对于参数对象,参数对象在生成的代码中显示为可调的。当你设置默认参数行为来可调
, MATLAB变量和参数对象在生成的代码中出现可调。根据定义,模型参数也是可调的。
在某些条件下,代码生成器不能保持参数、变量、对象或表达式的可调性。在这种情况下,代码生成器内联数值,防止您在代码执行期间更改值。
要在模型中检测这些条件,请设置模型配置参数检测可调性的损失(见检测可调性的损失(金宝app模型)警告
或错误
.
可调表达式限制
可以将块参数值指定为使用的表达式金宝app仿真软件。参数
对象或工作区变量。例如,你可以使用这样的表达5 * gainParam
.有关使用表达式设置块参数值的一般信息,请参见使用数学表达式,MATLAB函数和自定义函数(金宝app模型)。用于设置值的表达式的限制金宝app仿真软件。参数
对象,看到带有表达式值的参数对象的代码生成.
一个可调的工作空间变量是一个金宝app仿真软件。参数
对象或工作区变量,在生成的代码中显示为可调的。例如,如果应用存储类以外的其他类,则对象或变量是可调的汽车
或者如果你设置默认参数行为来可调
.
包含一个或多个可调工作区变量、模型参数或可调掩码参数的表达式称为可调的表情.表达式是可调的,因为代码生成器试图在代码中保留表达式。因为代码生成器保留表达式,所以您可以在代码执行期间更改参数数据的值。
代码生成器将某些表达式减少为生成代码中的内联数值。内联使表达式中的工作区变量不可调。为了避免由于不支持的表达式而导致的可调性损失,请遵循以下准则:金宝app
涉及复杂(
我
)不支持工作区变量或参数对象。金宝app某些操作符和函数会导致代码生成器减少表达式并消除可调性。要确定某个操作符或函数是否导致丧失可调性,请使用此表中的信息。
类别 运算符或函数 1
+ - .* ./ < > <= >= == ~= & | ./
2
* /
3.
腹肌
,这些“可信赖医疗组织”
,印度历的7月
,:
,量化
,布尔
,装天花板
,因为
,cosh
,经验值
,地板上
,日志
,log10
,标志
,罪
,sinh
,√6
,棕褐色
,双曲正切
,单
,int8
,int16
,int32
,uint8
,uint16
,uint32
4
: .^ ^[]{}。\ .\ ' .',;
使用类别1的操作符而不损失可调性。
只要至少有一个操作数是标量,就可以在表达式中使用类别2的操作符。例如,支持标量/标量和标量/矩阵操作数组合,但不支持矩阵/矩阵组合。金宝app
您可以使用可调的工作区变量作为类别3中的函数的参数。如果使用其他函数,代码生成器将删除参数的可调性。
不支持第4类操作符。金宝app
的Fcn而且如果块不支持代码生成或引用模型中金宝app的可调表达式。
您可以编写掩码初始化代码来创建和修改变量。如果在表达式中使用这些变量,则表达式不可调。
类型的数据类型
金宝app仿真软件。参数
组成表达式的对象或工作区变量。只要这些变量和对象的数据类型与对应块参数的数据类型相同或双
,代码生成器可以保持可调性。
如果代码生成器保留包含至少一个整数类型元素的参数表达式的可调性,则所生成代码的模拟和执行可能产生数值不一致的结果。在生成的代码中计算表达式会在模拟期间表达式饱和时导致溢出。有关更多信息,请参见模型与生成代码仿真结果的数值一致性.
线性块参数可调性
这些方块有一个实现
参数,影响其数值参数的可调性:
转移Fcn
状态方程
离散状态空间
设置实现
参数时,必须使用命令提示符:
set_param (gcb),“实现”,“汽车”)
为实现
参数,您可以选择以下选项:
一般
:块的数值参数在生成的代码中显示为可调的。稀疏的
:生成的代码将块的参数表示为提高效率的转换值。参数不可调。汽车
:默认值。如果块的一个或多个参数是可调的(例如,因为您使用可调参数对象来设置参数值),则块使用一般
实现。否则,块使用稀疏的
实现。在外部模式模拟期间,要调优其中一个块的参数值,该块必须使用
一般
实现。
参数结构
如在在生成的代码中将数据组织成结构,您可以在生成的代码中创建参数数据结构。
如果参数结构是可调的,则该结构的数值字段在生成的代码中是可调的。但是,如果字段包含不可调的实体,例如多维数组,则结构字段不可调。
不能将参数结构中的各个子结构或字段声明为可调的。你不能使用
金宝app仿真软件。参数
对象作为结构字段的值。相反,必须将整个结构存储在参数对象中。