主要内容

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

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

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

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

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

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

  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对象存储和查找表配置数据ASAP2或AUTOSAR代码生成(例如,STD_AXIS或曲线),您可以配置对象作为模型参数。然后您可以指定独特的表数据和断点数据为每一个组件的实例。

你不能使用金宝appSimulink.Breakpoint对象作为模型参数。

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

当您设置规范明确的价值甚至间距值可以是:

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

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

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

当您设置规范参考值可以是:

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

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

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

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

  • 模型参数定义的每个字段的结构和数量必须指定字段和字段的名称必须匹配。

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

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

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

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

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

配置引用模型中的模型参数

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

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

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

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

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

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

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

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

  5. 点击应用

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

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

  8. 保存模型。

创建特定参数值

  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对象的基本工作空间和其他实例使用的表和断点数据存储结构。

另请参阅

|||||

相关的例子

更多关于