主要内容

一个可重用的引用模型的参数化实例

当你使用多个引用相同的模型模型块,您可以配置一块参数使用相同的值或一个不同的值为每个模型的实例。例如,您可以配置获得参数的获得块。使用不同的值,创建和使用一个模型参数设置块参数的值。对于某些应用程序,您可以重用一个引用模型只有您可以配置每个实例使用不同的值为一块参数(如一个控制器的设定值或滤波器系数)。

指定一个不同的值的每个实例一个可重用模型

一块参数在一个可重用的引用模型中,指定一个不同的值为每个实例的模型:

  1. 创建一个MATLAB®变量或金宝appSimulink.Parameter模型中的对象引用模型的工作区。

    • 使用MATLAB变量易于维护。

    • 使用一个金宝appSimulink.Parameter对象为更好地控制最小和最大值,数据类型,和其他属性模型的参数。

  2. 组块参数值通过使用对象变量或参数。可选地,使用相同的变量或对象设置其他参数值。

  3. 配置变量或对象被选择作为模型参数论点财产。

  4. 变量或指定一个默认值金宝appSimulink.Parameter对象。直接模拟该模型时,块参数使用变量或对象的值存储在模型中工作区。当这个模型作为参考模型,模拟一个参数作为模型参数配置从母公司模型得到其价值。

    可选地,您可以离开的价值金宝appSimulink.Parameter对象是空的。看到定义模型参数没有指定一个默认值

  5. 在每一个模型块指的是可重用模型,为块参数指定一个特定值。尺寸和特定值的数据类型必须匹配模型的参数定义。如果不指定一个值,它下面的参数指定使用最后一个值在模型层次结构。在上面的模型中,您可以配置诊断配置参数没有明确的最终值模型参数在最顶层时生成一个错误或警告模型块,可以设置模型参数的值使用这个默认值,而不是提供一个明确的价值。

  6. 在中间模型中,除了为块参数指定一个特定值,您可以指定如果参数可以覆盖下一个层次的层次结构。

定义模型参数没有指定一个默认值

如果你使用一个金宝appSimulink.Parameter对象设置参数值,您可以编译和仿真模型作为参考模型与空的值对象(价值设置为“[]”),只要你提供一个明确的价值在父模型参考的层次结构。在这种情况下,您不能直接模拟模型。值为空时,您必须提供的数据类型的对象。你也可以指定最小值,马克斯,复杂性属性。虽然您指定空值,仿真软件金宝app®还是综合价值使用指定的属性(参见金宝appSimulink.Parameter)。

结合多个参数结构

当你配置一个模型使用多个模型参数,考虑使用一个结构,而不是单独的变量在模型中工作区。该技术减少了维护工作当你想添加、重命名或删除参数。代替手动同步的参数模型中的工作空间的参数值模型块,你修改结构通过使用变量编辑器或命令提示符。

如果你有一个金宝app仿真软件编码器™许可证,这种技术也可以减少罗被引用的模型函数的形式参数,如输出(一步)函数。

创建和使用结构设置参数值,明白了组织相关块参数定义的结构

引用的模型参数化

这个例子展示了如何交互配置引用模型的多个实例使用不同的值相同的块参数。参数化的一个例子引用模型只使用命令提示符下,明白了参数化编程的参考模型。一个示例,包括代码生成,看到为可重用模型引用指定特定参数值(金宝app仿真软件编码器)

配置引用模型使用模型参数

配置模型参数为参考模型,您必须创建或MATLAB变量金宝appSimulink.Parameter工作空间中的对象模型。这个示例配置金宝appSimulink.Parameter对象作为模型参数没有默认值存储在对象,而是依赖于父模型参考等级提供显式值。没有默认值,模型不能直接模拟,必须模拟作为参考模型。

创建一个模型ex_model_arg_ref包含一个获得块和一个离散滤波器块。

配置获得参数的获得块和分子参数的离散滤波器块作为模型参数:

  1. 在模型中,建模选项卡上,单击模型数据编辑器

  2. 在模型数据编辑器中,选择参数选项卡。

  3. 使用价值列设置的值获得例如,参数变量gainArg

  4. 旁边gainArg,点击操作按钮并选择创建

  5. 在创建新的数据对话框中,设置价值金宝appSimulink.Parameter位置模型的工作空间。点击创建

  6. 金宝appSimulink.Parameter属性对话框中,设置数据类型1。离开空值(价值设置为“[]”)。指定最小值,马克斯,复杂性值对象是可选的。

  7. 配置对象作为模型参数,选择论点

  8. 点击好吧

  9. 重复步骤4到9分子参数的离散滤波器块。在这种情况下,创建一个金宝appSimulink.Parameter对象命名coeffArg

记住,模型本身不成功编译没有值的参数设置对象。

在父母的模型设置模型参数值

当你模拟一个父模型中,每个实例的一个可重用的引用模型使用您所指定的参数值,在父模型。这个例子展示了如何让一个模型参数的可调参数模型块模型的每一层的层次结构。

创建一个模型ex_model_arg使用可重用模型的多个实例ex_model_arg_ref前面的例子。

设置特定于您的模型参数值在模型中引用层次结构:

  1. 在模型中,建模选项卡上,单击模型数据编辑器

  2. 在模型数据编辑器中,选择参数选项卡。模型数据编辑器显示四行,对应于特定的参数,您可以指定两个模型块。

  3. 使用模型数据编辑器来设置参数的值模型Model1。默认情况下,模型参数使用低于指定的最后一个值在模型层次结构(价值从下面< >)。在这个数字替换默认的值。

  4. 覆盖这些参数的值在模型层次结构的下一个级别,选择的复选框论点列。默认情况下,复选框没有被选中。

    您还可以配置在每个特定的参数模型块。在块对话框中,选择实例参数选项卡。

    提示

    模型实例参数时不支持金宝app使用当地的解算器引用模型启用的解算器窗格中

  5. 创建一个模型ex_model_arg_top包含一个模型块的引用ex_model_arg

  6. 在模型数据编辑器中,单击显示/刷新的额外信息按钮。在参数选项卡中,您可以看到每个特定参数公开为可调参数的参考模型。从这里,您可以创建一组参数值的所有实例coeffArggainArg在模型层次结构参数。

    默认情况下,每个实例使用下面的最后一个值指定模型层次结构。在这种情况下,模型数据编辑器显示< from_below >。如果您选择了论点复选框父母公开参数模型,价值显示为<继承了>表示运行时价值来自于父母。

    更新后的模型图,编辑也会显示编译后的实例的值。导航到这个默认值,单击按钮,旁边的三个垂直点编译价值和选择导航到默认值。上次指定的参考模型值会在新标签页中打开模型中的画布,和模型数据编辑器突出行包含块的参数。

请注意

您可以使用一个参数的作家块来改变模型实例的值参数或模型在模拟工作空间变量。看到初始化和设置参数值

组织多个模型参数为单一结构

您可以使用结构来减少维护的工作当你想添加、重命名或删除参数。结构,数学模型的功能是相同的。

更换与结构参数值ex_model_arg_refex_model_arg遵循以下步骤:

  1. 在命令提示符处,创建一个结构。添加一个字段中的每个参数的对象ex_model_arg_ref工作区。

    structForInst1。获得= 3.17;structForInst1。多项式系数= 1.05;
  2. 在一个存储结构金宝appSimulink.Parameter对象。

    structForInst1 = 金宝appSimulink.Parameter (structForInst1);
  3. 模型浏览器打开。在参考模型中,ex_model_arg_ref,在建模选项卡上,单击模型浏览器

  4. 使用Model Explorer将基本工作空间的参数对象复制到ex_model_arg_ref模型的工作空间。

  5. 在模型中工作区,重命名structForInst1作为structArg

  6. 内容窗格中,配置structArg作为唯一的模型参数。

  7. ex_model_arg_ref模型,在模型数据编辑器参数选项卡,设置的值获得参数structArg.gain和的值分子参数structArg.coeff

  8. 保存模型。

  9. 在命令提示符下,复制现有的结构基础的工作区structForInst2

    structForInst2 = (structForInst1)复印件;
  10. 设置字段值的两种结构通过使用相同的数字,你用于设置模型参数值模型块。

    structForInst1.Value。获得= 2.98;structForInst1.Value。多项式系数= 0.98;structForInst2.Value。获得= 3.34;structForInst2.Value。多项式系数= 1.11;
  11. 在上面的模型中,ex_model_arg,使用模型数据编辑器来设置参数值如这个图所示。

使用总线对象数据类型的结构

您可以使用一个金宝appSimulink.Bus对象的数据类型结构。对象确保特定结构的特点,如字段的名称和顺序,匹配的特征结构模型中的工作区。

  1. 在命令提示符处,使用函数金宝appSimulink.Bus.createObject创建一个金宝appSimulink.Bus对象。元素对象的层次结构与层次结构的字段。对象的缺省名称slBus1

    金宝appSimulink.Bus.createObject (structForInst1.Value);
  2. 重命名总线对象myParamStructType通过复制它。

    myParamStructType = (slBus1)复印件;
  3. 在模型中数据的编辑ex_model_arg,单击显示/刷新的额外信息按钮。模型数据编辑器现在包含行对应参数基本工作空间中的对象,structForInst1structForInst2

  4. 使用数据类型列的数据类型structForInst1structForInst2总线:myParamStructType

  5. 在模型中数据的编辑ex_model_arg_ref,使用模型数据编辑器设置的数据类型structArg总线:myParamStructType

改变模型参数名称或价值

重命名模型参数的上下文中被引用的模型:

  • 找到所有模型块参考模型和保存特定于每个块指定参数值。使用get_param函数查询InstanceParameters每个块的参数,这是一个结构数组。结构包含四个方面:的名字,价值,路径,论点

    你必须拯救instant-specific参数值,因为重命名操作丢弃中的值模型块。

  • 在模型数据编辑器中,右键单击变量或对象的模型空间参考模型和选择重命名所有。重命名操作更改变量或对象的名称和引用,它在整个模型变化。有关更多信息,请参见创建、编辑和管理工作空间变量

  • 申请的参数值模型块使用新参数的名称。以编程方式设置参数值模型块,看实例参数

自定义用户界面的可重用的组件

当你设计一个可重用的引用的模型使用的其他团队成员,您可以应用一个面具整个参考模型。你可以定制用户与之交互的方式模型块,包括设置特定值。

使用这种技术也使得编程方式指定特定的值。如果你创建和使用一个面具参数命名gainMask以编程方式设置值0.98模型的一个实例命名myModelBlock,您的用户可以使用此命令在命令提示符:

set_param (“myModelBlock”,“gainMask”,“0.98”)

如果你用一个面具来引用的模型,该模型面具只显示特定参数的直接子模型。它不显示特定参数提升后代模型。

如果你不掩模模型,设置特定值,使用InstanceParameters块的参数。有关更多信息,请参见参数化编程的参考模型

对于信息掩蔽模型,明白了介绍系统的面具

配置特定的数据金宝appSimulink.LookupTable金宝appSimulink.Breakpoint对象

当你使用金宝appSimulink.LookupTable对象存储和配置ASAP2或AUTOSAR代码生成的查找表数据,例如,STD_AXIS或曲线,您可以配置对象作为模型参数。您还可以配置一个金宝appSimulink.Breakpoint对象的引用金宝appSimulink.LookupTable作为一个模型的参数。然后您可以指定独特的表数据和断点数据为每一个组件的实例。

您可以指定的特定值金宝appSimulink.LookupTable参数作为一个新的金宝appSimulink.LookupTable在父对象模型或简单的MATLAB结构或数组。

指定一个特定值金宝appSimulink.LookupTable基于价值的对象断点规范财产。

  • 断点规范属性设置为明确的价值观甚至间距查找表的特定价值对象可以是:

    • 一个金宝appSimulink.LookupTable对象

    • 一个有效的MATLAB结构变量的名称,如Model1_LUT2

    • 文字结构表达式,如结构(BP1的“表”,…,…,BP2,…)

    • 其他表达式返回一个有效的结构,如Params.Model1.LUT2或者调用MATLAB函数

  • 断点规范属性设置为参考的特定值金宝appSimulink.LookupTable对象可以是:

    • 一个金宝appSimulink.LookupTable对象。在这种情况下,模型只金宝app查找表对象的属性子模型。这允许您配置模型参数金宝appSimulink.LookupTable对象和金宝appSimulink.Breakpoint对象彼此独立的和重用这些对象作为多个实例的参数模型块。

    • 文字数字数组值,如[1 5 7;2 8 13]

    • 数字数组变量的名称,如Model1_LUT2

    • 其他表达式返回一个有效的数字数组,例如Params.Model1.LUT2或者调用MATLAB函数。

    在这种情况下,如果你的配置金宝appSimulink.Breakpoint对象的引用金宝appSimulink.LookupTable作为一个模型的参数,为特定值金宝appSimulink.Breakpoint对象可以是:

    • 一个金宝appSimulink.Breakpoint对象。

    • 数值数组定义断点。数组必须匹配的设计定义断点对象。金宝app仿真软件提供了一个金宝appSimulink.Breakpoint通过使用数组中的值对象。

    • 数值数组变量或字段的名称的结构。

当你指定的特定值金宝appSimulink.LookupTable作为一个结构参数,这些规则:

  • 模型参数定义的每个字段必须指定的结构,和数量的字段和字段的名称必须匹配。例如,只有表的数据金宝appSimulink.LookupTable类型的对象参考传递给子模型,您还必须指定断点结构或模型中数据报告和错误。金宝app

  • 的尺寸表和断点数据结构必须匹配模型的参数定义。

  • 如果一个结构字段的数据类型,该值的数据类型相应的模型参数。否则,该值必须匹配的数据类型对应的模型参数。

您可以指定的值金宝appSimulink.LookupTable对象作为一个简单的数值模拟模式和代码生成。对于代码生成,如果您配置的模型参数的存储类汽车、结构或数值数组变量不是保存在生成的代码。如果你设置存储类的其他价值,价值的结构或数值数组用于初始化可调参数在生成的代码中,类似于其他模型参数。

指定特定的价值金宝appSimulink.LookupTable对象

这个例子显示了如何指定的特定值金宝appSimulink.LookupTable参数作为一个新的金宝appSimulink.LookupTable作为一个MATLAB结构。

对于一个参数化的例子引用模型利用查找表和命令提示符,看到的通过编程方式配置特定于查找表的数据

首先,创建一个模型,该模型代表一个可重用的算法。配置一个金宝appSimulink.LookupTable对象作为模型参数来使用你的模型。

  1. 创建一个模型ex_arg_LUT_ref代表一个可重用的算法。

  2. 使用Model Explorer,添加一个金宝appSimulink.LookupTable对象模型中工作区。您可以使用添加模型金宝appLookupTable按钮。名称的对象LUTArg

  3. 内容窗格中,为LUTArg,则选中该复选框论点列。

  4. 数量的维度表2。在断点表格区域,指定的值,BP1,BP2数据。例如,配置表和断点数据通过输入这些值在MATLAB表达式框。

    • - - - - - -(3 4;1 2)

    • BP1- - - - - -(1 2)

    • BP2- - - - - -[3 - 4]

    当你从模拟或直接生成代码ex_arg_LUT_ref,该模型使用这些值。

  5. 结构体类型定义,设置的名字LUTArg_Type

  6. 点击应用

  7. 内容窗格中,为LUTArg,则选中该复选框论点列。

  8. 在参考模型中,一天的查找表块,设置数据规范查找表对象。集的名字LUTArg

  9. 保存模型。

接下来,创建一个模型,使用可重用算法和指定的特定值金宝appSimulink.LookupTable对象。

  1. 创建一个模型ex_arg_LUT可重用算法,它使用两次。

  2. 在命令提示符处,创建一个金宝appSimulink.LookupTable对象模型中工作区。或者,您可以创建金宝appSimulink.LookupTable对象在数据字典或基本工作空间。

    LUTForInst1 = 金宝appSimulink.LookupTable;
  3. 指定断点和表数据对象。

    LUTForInst1.Table。值= [8 7;6 5];LUTForInst1.Breakpoints (1)。值= [5 - 6];LUTForInst1.Breakpoints (2)。值= (3 4);
  4. 指定一个结构类型的名字。匹配这个名字的名称指定的对象引用模型的工作区。

    LUTForInst1.StructTypeInfo。Name =“LUTArg_Type”;
  5. 使用一个结构来创建特定于第二个参数值模型块。指定断点和表数据结构。

    StructForInst2。表= [9 8;7 7];StructForInst2。BP1 = [3 - 4];StructForInst2。BP2 = [5 - 6];
  6. ex_arg_LUT模型,模型实例模型,在实例参数选项卡,设置的值LUTArgLUTForInst1

  7. 对模型实例Model1,设置LUTArgStructForInst2

的一个实例ex_arg_LUT_ref使用表格和数据存储在断点金宝appSimulink.LookupTable对象模型中工作区。其他实例使用了表和断点数据存储结构。

指定特定的值金宝appSimulink.LookupTable金宝appSimulink.Breakpoint对象

这个例子显示了如何指定一个特定的价值金宝appSimulink.LookupTable对象作为一个新的金宝appSimulink.LookupTable对象。示例还显示了如何指定一个特定值金宝appSimulink.Breakpoint对象的引用金宝appSimulink.LookupTable对象。

首先,创建一个模型,该模型代表一个可重用的算法。配置一个金宝appSimulink.Breakpoint对象和金宝appSimulink.LookupTable对象引用金宝appSimulink.Breakpoint对象模型参数。

  1. 创建一个模型ex_arg_BP_ref代表一个可重用的算法。

  2. 使用Model Explorer,添加一个金宝appSimulink.LookupTable对象模型中工作区。您可以使用添加模型金宝appLookupTable按钮。名称的对象LUTArg

  3. 内容窗格中,为LUTArg,则选中该复选框论点列。

  4. 数量的维度表1

  5. 指定表数据的价值(1 2)

  6. 断点规范参考

  7. 断点节中,设置的名字BP1

  8. 添加一个金宝appSimulink.Breakpoint对象模型中工作区。名称的对象BP1并指定值[3 - 4]

  9. 内容窗格中,为BP1,则选中该复选框论点列。

接下来,创建一个模型,使用可重用算法和指定的特定值金宝appSimulink.LookupTable对象和金宝appSimulink.Breakpoint对象。

  1. 创建一个模型ex_arg_BP可重用算法,它使用两次。

  2. 在命令提示符处,模型实例模型,创建一个金宝appSimulink.LookupTable对象和一个金宝appSimulink.Breakpoint对象模型中工作区。或者,您可以创建这些对象在数据字典或基本工作空间。

    LUTForInst1 = 金宝appSimulink.LookupTable;BPForInst1 = 金宝appSimulink.Breakpoint;
  3. 指定断点和表数据对象。您必须指定断点信息LUTForInst1这样特定的规范值匹配模型参数规格。然而,只有表数据推到子模型。

    LUTForInst1.Table。值= 8 [7];LUTForInst1。断点Specification =“参考”;LUTForInst1。断点= {“BPForInst1”};BPForInst1.Breakpoints。值= [5 - 6];
  4. ex_arg_BP模型,模型实例模型,在实例参数选项卡,设置的值LUTArgLUTForInst1和的值BP1BPForInst1

  5. 对模型实例Model1,创建另一个金宝appSimulink.LookupTable对象模型中工作区并指定表和断点数据。或者,您可以创建金宝appSimulink.LookupTable对象在数据字典或基本工作空间。

    LUTForInst2 = 金宝appSimulink.LookupTable;BPForInst2 = 金宝appSimulink.Breakpoint;BPForInst2.Breakpoints。值= (11 12);LUTForInst2.Table。值= 10 [9];LUTForInst2。断点Specification =“参考”;LUTForInst2。断点= {“BPForInst2”};
  6. 对于这个模型实例,使用数组指定的特定值金宝appSimulink.Breakpoint对象。

    BPArrayForInst2 = 12 [11];
  7. ex_arg_BP模型,模型实例Model1,在实例参数选项卡,设置的值LUTArgLUTForInst2。对于这个模型实例,设置值BP1的数组BPArrayForInst2

另请参阅

|||||

相关的例子

更多关于