主要内容

万博1manbetxSimulink.参数

存储、共享和配置参数值

描述

创建一个万博1manbetxSimulink.参数对象来设置模型中的一个或多个块参数的值,例如获得参数的获得块。您可以在工作区或数据字典中创建对象。在对象中设置参数值,然后从块中引用对象。

使用万博1manbetxSimulink.参数反对:

  • 在多个块参数之间共享一个值。

  • 表示工程常数或可调校准参数。

  • 将参数值与其数据类型和其他属性分开。

  • 为代码生成配置参数数据。

这个价值属性存储参数值。若要在模型中使用对象,请将块参数的值设置为包含对象名称的表达式。省略价值属性。有关详细信息,请参阅使用参数对象

有关块参数的详细信息,请参见设置块参数值生成代码如何存储内部信号、状态和参数数据(万博1manbetx仿真软件编码器)

创造

创建一个万博1manbetxSimulink.参数对象:

描述

paramObj=Si万博1manbetxmulink.Parameter返回一个万博1manbetxSimulink.参数具有默认属性值的对象。

paramObj=Si万博1manbetxmulink.Parameter(参数值)返回一个万博1manbetxSimulink.参数对象并初始化价值财产参数值

性质

全部展开

的属性对话框中的属性信息万博1manbetxSimulink.参数对象,看到万博1manbetxSimulink.参数Property Dialog Box

为参数对象生成代码的规范,返回为万博1manbetxSimulink.CoderInfo对象。

此属性为只读。的属性万博1manbetxSimulink.CoderInfo此属性包含的对象。

例如,StorageClass财产万博1manbetxSimulink.CoderInfo对象确定Simulink的工作方式万博1manbetx®代码生成工具箱为生成的代码中的参数对象分配内存。有关详细信息,请参阅模型接口元素的C代码生成配置(万博1manbetx仿真软件编码器)选择存储类以控制生成代码中的数据表示(嵌入式编码)

参数值的数字复杂性,指定为“真的”“复杂”. 对于万博1manbetxSimulink.参数对象,使用此属性配置模型参数的复杂性。请参阅参数化可重用引用模型的实例

对于数值,Simulink从您在万博1manbetx价值财产。在这种情况下,更改复杂性会导致错误。

如果值是结构或数学表达式,Simulink将忽略指定的复杂性。万博1manbetx

数据类型:烧焦

中参数值的数据类型价值属性,指定为“自动”或者一个字符向量。模拟模型或生成代码时,Simulink将值强制转换为指定的数据类型。万博1manbetx

如果您指定“自动”,默认设置,参数对象使用与使用该对象的块参数相同的数据类型。请参阅使用数据类型继承减少维护工作量

当你设定价值属性,而不是双重的编号,对象通常设置数据类型属性的值价值财产。例如,当你设置价值财产int8 (5)对象的值数据类型财产“int8”

显式指定内置数据类型(请参见Simulink支持的万博1manbetx数据类型万博1manbetx),指定以下选项之一:

  • “双人”

  • “单身”

  • “一半”

  • “int8”

  • “uint8”

  • “int16”

  • ‘uint16’

  • “int32”

  • ‘uint32’

  • “int64”

  • ‘uint64’

  • “布尔”

要指定定点数据类型,请使用菲克特作用例如,指定‘fixdt(1,16,5)’

如果你使用万博1manbetx仿真软件。AliasType万博1manbetx仿真软件。NumericType要在模型中创建和共享自定义数据类型,请指定对象的名称。

要指定枚举数据类型,请使用前面的类型名称枚举:. 例如,指定'枚举:myEnumType'

属性中存储结构或结构数组时价值属性,则对象设置数据类型财产“结构”. 指定万博1manbetx模拟总线对象作为数据类型,使用前面加上的总线对象名称总线:. 例如,指定'总线:myBusObject'

例子:“自动”

例子:“int8”

例子:‘fixdt(1,16,5)’

例子:“myAliasTypeObject”

例子:'枚举:myEnumType'

例子:'总线:myBusObject'

数据类型:烧焦

自定义参数对象的描述,指定为字符向量。使用此属性来记录参数对象在算法中的重要性。

如果你有一个嵌入式编码器®许可证,您可以配置此描述,使其作为注释出现在生成的代码中。看见万博1manbetxSimulink数据对象描述(嵌入式编码)

例子:'此参数表示发动机的最大转速。'

数据类型:烧焦

存储在中的值的维度价值属性,作为行向量返回或指定为字符向量。当价值属性为空(设置为'[]”),您可以配置尺寸。否则,该属性是从价值

当你设定价值属性的值,则对象设置尺寸财产双重的行向量。这个向量和大小函数返回。

如果将对象配置为模型参数,并且希望在父模型引用层次结构中的其他位置为对象提供值,则可以保留价值属性为空(设置为'[]),并设置尺寸数据类型显式属性。看见参数化可重用引用模型的实例

要使用符号标注,请指定字符向量。看见在生成的代码中实现数组大小的维度变量(嵌入式编码)

例子:[1 3]

例子:“[1 myDimParam]”

数据类型:双重的|烧焦

指定的最大值价值对象的属性可以存储,指定为实数双重的标量。

默认值为空,这意味着参数值没有最大值。

如果将复数存储在价值财产,马克斯属性分别适用于实部和虚部。

如果将结构存储在价值属性时,对象将忽略马克斯所有物相反,使用万博1manbetx模拟总线对象作为参数对象的数据类型,并通过使用总线对象的元素为每个字段指定最大值。看见通过创建参数对象控制字段数据类型和特征

如果价值大于最大值或如果最大值超出对象数据类型的范围,Simulink将生成警告。更新图表或启动模拟时,Simulink将生成错误。万博1manbetx

有关Simulink如何使用此属性的详细信息,请参见万博1manbetx指定块参数的最小值和最大值

例子:5.32

数据类型:双重的

最小值价值对象的属性可以存储,指定为实数双重的标量。

默认值为空,这意味着参数值没有最小值。

如果将复数存储在价值财产,最小值属性分别适用于实部和虚部。

如果将结构存储在价值属性时,对象将忽略最小值所有物相反,使用万博1manbetx模拟总线对象作为参数对象的数据类型,并使用总线对象的元素为每个字段指定最小值。请参阅通过创建参数对象控制字段数据类型和特征

如果价值小于最小值或如果最小值超出对象数据类型的范围,Simulink将生成警告。更新图表或启动模拟时,Simulink将生成错误。万博1manbetx

有关Simulink如何使用此属性的详细信息,请参见万博1manbetx指定块参数的最小值和最大值

例子:-0.92

数据类型:双重的

参数值的物理单位,指定为描述有效单位的字符向量。有关详细信息,请参阅Simulink模型中的单元规范万博1manbetx

例子:“degC”

数据类型:烧焦

要在块参数中使用的值,指定为以下任一有效值:

如果你使用万博1manbetxSimulink.参数对象来设置可重用引用模型中的块参数值,您可以将该模型编译为引用模型,并将该对象的值保留为空(价值设置为'[]“),只要在父模型引用层次结构中的某个位置提供显式值。在这种情况下,不能直接模拟模型。当值为空时,必须提供数据类型尺寸虽然指定了空值,但Simulink仍会合成万博1manbetx价值通过使用以下其中一项:

  • 马克斯

  • 最小值,如果您尚未指定马克斯

  • 1.,如果您尚未指定最小值马克斯

看见参数化可重用引用模型的实例

你也可以使用MATLAB®用于指定值的语法。

示例表达式 描述
15.23

指定标量值

[3 4; 9 8]

指定一个矩阵

3+2i

指定一个复值

结构体(B ' A ', 20日,5)

指定具有两个字段的结构,A.B,具有双精度值20.5.

将块参数组织到结构中(请参见组织结构中的相关块参数定义)或初始化总线中的信号元素(参见指定总线元素的初始条件).

slexpr('myVar+myOtherVar') 指定表达式myVar+myOtherVar在哪里迈瓦尔myOtherVar是其他MATLAB变量或参数对象。万博1manbetxSimulink保留了对象和变量之间的数学关系。

使用万博1manbetxSimulink.参数对象要存储特定数值数据类型的值,请使用价值属性并使用数据类型财产。

如果你设置价值属性,使用类型化表达式,例如单人(32.5)这个数据类型属性更改以反映新类型。最佳实践是使用没有类型化的表达式,以避免通过重复量化或数据类型饱和累积数值错误,特别是对于定点数据类型。

例子:3.15

例子:1.2 + 3.2我

例子:真正的

例子:myEnumType.myEnumValue

例子:结构('field1',15,'field2',7.32)

例子:slexpr('myVar+myOtherVar')

数据类型:双重的||int8|int16|int32|int64|uint8|uint16|uint32|uint64|必然的|结构|fi|枚举
复数支持:万博1manbetx

例子

使用参数对象设置参数的值获得参数

  1. 在命令提示下,创建一个万博1manbetxSimulink.参数对象。

    myParam = 万博1manbetxSimulink.Parameter;

  2. 将一个数值指定给价值财产。

    myParam.Value=15.23;

  3. 指定参数可以使用的最小值和最大值最小值马克斯属性。

    myParam.Min=10.11;myParam.Max=25.27;

  4. 打开一个新的Simul万博1manbetxink模型。添加一个获得阻止并设置其获得参数myParam. 在模拟过程中获得参数使用值15.23

更改参数对象存储的值

  1. 在命令提示下,创建一个万博1manbetxSimulink.参数存储值的对象2.52

    myParam=Si万博1manbetxmulink.参数(2.52);

  2. 通过访问价值对象的属性。此技术保留对象的其他属性的值。

    myParam。价值= 1.13;

创建具有特定数值数据类型的参数对象

为了减少模型维护,您可以将数据类型属性的默认值,汽车。参数对象从使用该对象的块参数中获取数据类型。

要降低更改模型中的信号数据类型和其他数据类型时数据类型更改的风险,可以显式指定参数对象的数据类型。例如,生成将参数数据导出到自定义代码的代码时,请显式指定对象的数据类型。

  1. 在MATLAB命令提示符下,创建一个万博1manbetxSimulink.参数存储值的对象18.25

    myParam = 万博1manbetxSimulink.Parameter (18.25);

    表达式18.25返回数字18.25具有双精度浮点数据类型双重的. 这个价值属性存储号码18.25具有双重精度。

  2. 使用数据类型属性指定单精度数据类型

    myParam。数据类型=“单身”;

    当您模拟或生成代码时,对象将强制转换价值所有物18.25,设置为数据类型所有物

将参数值设置为数学表达式

此示例显示如何设置参数对象的值,myParam,表示其他两个变量之和,迈瓦尔myOtherVar.使用这种技术,当您更改独立变量的值时,Simulink会立即计算参数对象的新值。万博1manbetx

  1. 创建两个独立变量。

    myVar=5.2;myOtherVar=9.8;

  2. 创建参数对象。

    myParam = 万博1manbetxSimulink.Parameter;

  3. 将参数对象的值设置为表达式myVar+myOtherVar

    myParam.Value=slexpr(“myVar + myOtherVar”)

    当您模拟或生成代码时,表达式的计算结果为15

之前介绍过的R2006a