主要内容

生成代码中块参数可调性的限制

一个块参数,MATLAB®变量或者金宝app仿真软件。参数对象是可调的,如果它作为存储在内存中的数据出现在生成的代码中,例如全局变量。例如,当您应用存储类时ExportedGlobal对于参数对象,参数对象在生成的代码中显示为可调优的。当您设置默认参数的行为可调, MATLAB变量和参数对象在生成的代码中显示为可调。根据定义,模型参数也是可调的。

在某些条件下,代码生成器不能保持参数、变量、对象或表达式的可调性。在这种情况下,代码生成器内联数值,防止您在代码执行期间更改数值。

要检测模型中的这些条件,请设置模型配置参数检测可调性的损失(见检测可调性的损失)警告错误

可调表达的局限性

您可以将块参数值指定为使用金宝app仿真软件。参数对象或工作区变量。例如,你可以使用这个表达式5 * gainParam.有关使用表达式设置块参数值的一般信息,请参见使用数学表达式,MATLAB函数,和自定义函数.用于设置值的表达式的限制金宝app仿真软件。参数对象,看到用表达式值生成参数对象的代码

一个可调工作空间变量是一个金宝app仿真软件。参数在生成的代码中显示为可调的对象或工作区变量。例如,如果应用的存储类不是存储类,则对象或变量是可调的汽车或者如果你设置默认参数的行为可调

包含一个或多个可调工作区变量、模型参数或可调掩码参数的表达式称为可调的表情.表达式是可调的,因为代码生成器试图在代码中保留表达式。因为代码生成器保留了表达式,所以您可以在代码执行期间更改参数数据的值。

代码生成器将生成的代码中的某些表达式减少为内联的数值。内联使表达式中的工作空间变量变得不可调优。为了避免由于不支持的表达式而失去可调性,请遵循以下准则:金宝app

  • 包含复数(不支持工作区变量或参数对象。金宝app

  • 某些操作符和函数会导致代码生成器减少表达式并删除可调性。若要确定操作符或函数是否导致可调性丧失,请使用该表中的信息。

    类别 运营商或功能

    1

    + - .* ./ < > <= >= == ~= & |

    2

    * /

    3.

    腹肌这些“可信赖医疗组织”印度历的7月:量化布尔装天花板因为cosh经验值地板上日志log10标志sinh√6棕褐色双曲正切int8int16int32uint8uint16uint32

    4

    ^ ^[]{}。\ .\ ' .',;

    • 使用类别1中的操作符而不丧失可调性。

    • 只要表达式中至少有一个操作数是标量,就使用第2类中的操作符。例如,支持标量/标量和标量/矩阵操作数组合,但不支持矩阵/矩阵组合。金宝app

    • 您可以使用可调工作区变量作为类别3中的函数的参数。如果使用其他函数,代码生成器将删除参数的可调性。

    • 不支持类别4中的操作符。金宝app

  • Fcn如果块不支持用于代码生成或引用模金宝app型的可调表达式。

  • 可以编写创建和修改变量的掩码初始化代码。如果在表达式中使用这些变量,则表达式是不可调优的。

  • 属性的数据类型金宝app仿真软件。参数组成表达式的对象或工作区变量。只要这些变量和对象的数据类型与相应块参数的数据类型相同或,代码生成器可以保持可调性。

如果代码生成器保留至少包含一个整数类型元素的参数表达式的可调性,则模拟和执行生成的代码可能产生数值上不一致的结果。在模拟期间表达式饱和时,对生成代码中的表达式求值会导致溢出。有关更多信息,请参见模型与生成代码仿真结果的数值一致性

线性块参数可调性

这些方块有一个实现参数影响其数值参数的可调性:

  • 转移Fcn

  • 状态方程

  • 离散状态空间

设置实现参数,则必须使用命令提示符:

set_param (gcb),“实现”“汽车”

实现参数,您可以选择以下选项:

  • 一般:块的数值参数在生成的代码中显示为可调的。

  • 稀疏的:生成的代码将块的参数表示为转换后的值,以提高效率。参数是不可调优的。

  • 汽车:默认。如果块的一个或多个参数是可调的(例如,因为使用可调参数对象来设置参数值),则块使用一般实现。否则,块将使用稀疏的实现。

    要在外部模式模拟期间调优其中一个块的参数值,块必须使用一般实现。

参数结构

中描述的在生成的代码中将数据组织成结构,您可以在生成的代码中创建参数数据的结构。

  • 如果参数结构是可调的,则在生成的代码中该结构的数字字段也是可调的。但是,如果字段包含不可调优的实体,例如多维数组,则结构字段不可调优。

  • 不能将参数结构中的单个子结构或字段声明为可调。你不能用金宝app仿真软件。参数对象作为结构字段的值。相反,必须将整个结构存储在参数对象中。

相关的话题