一个可重用的引用模型的参数化实例
当你使用多个引用相同的模型模型块,您可以配置一块参数使用相同的值或一个不同的值为每个模型的实例。例如,您可以配置获得参数的获得块。使用不同的值,创建和使用一个模型参数设置块参数的值。对于某些应用程序,您可以重用一个引用模型只有您可以配置每个实例使用不同的值为一块参数(如一个控制器的设定值或滤波器系数)。
指定一个不同的值的每个实例一个可重用模型
一块参数在一个可重用的引用模型中,指定一个不同的值为每个实例的模型:
创建一个MATLAB®变量或
金宝appSimulink.Parameter
模型中的对象引用模型的工作区。使用MATLAB变量易于维护。
使用一个
金宝appSimulink.Parameter
对象为更好地控制最小和最大值,数据类型,和其他属性模型的参数。
组块参数值通过使用对象变量或参数。可选地,使用相同的变量或对象设置其他参数值。
配置变量或对象被选择作为模型参数论点财产。
变量或指定一个默认值
金宝appSimulink.Parameter
对象。直接模拟该模型时,块参数使用变量或对象的值存储在模型中工作区。当这个模型作为参考模型,模拟一个参数作为模型参数配置从母公司模型得到其价值。可选地,您可以离开的价值
金宝appSimulink.Parameter
对象是空的。看到定义模型参数没有指定一个默认值。在每一个模型块指的是可重用模型,为块参数指定一个特定值。尺寸和特定值的数据类型必须匹配模型的参数定义。如果不指定一个值,它下面的参数指定使用最后一个值在模型层次结构。在上面的模型中,您可以配置诊断配置参数没有明确的最终值模型参数在最顶层时生成一个错误或警告模型块,可以设置模型参数的值使用这个默认值,而不是提供一个明确的价值。
在中间模型中,除了为块参数指定一个特定值,您可以指定如果参数可以覆盖下一个层次的层次结构。
定义模型参数没有指定一个默认值
如果你使用一个金宝appSimulink.Parameter
对象设置参数值,您可以编译和仿真模型作为参考模型与空的值对象(价值设置为“[]
”),只要你提供一个明确的价值在父模型参考的层次结构。在这种情况下,您不能直接模拟模型。值为空时,您必须提供的数据类型和维的对象。你也可以指定最小值,马克斯,复杂性属性。虽然您指定空值,仿真软件金宝app®还是综合价值使用指定的属性(参见金宝appSimulink.Parameter
)。
结合多个参数结构
当你配置一个模型使用多个模型参数,考虑使用一个结构,而不是单独的变量在模型中工作区。该技术减少了维护工作当你想添加、重命名或删除参数。代替手动同步的参数模型中的工作空间的参数值模型块,你修改结构通过使用变量编辑器或命令提示符。
如果你有一个金宝app仿真软件编码器™许可证,这种技术也可以减少罗被引用的模型函数的形式参数,如输出(一步
)函数。
创建和使用结构设置参数值,明白了组织相关块参数定义的结构。
引用的模型参数化
这个例子展示了如何交互配置引用模型的多个实例使用不同的值相同的块参数。参数化的一个例子引用模型只使用命令提示符下,明白了参数化编程的参考模型。一个示例,包括代码生成,看到为可重用模型引用指定特定参数值(金宝app仿真软件编码器)。
配置引用模型使用模型参数
配置模型参数为参考模型,您必须创建或MATLAB变量金宝appSimulink.Parameter
工作空间中的对象模型。这个示例配置金宝appSimulink.Parameter
对象作为模型参数没有默认值存储在对象,而是依赖于父模型参考等级提供显式值。没有默认值,模型不能直接模拟,必须模拟作为参考模型。
创建一个模型ex_model_arg_ref
包含一个获得块和一个离散滤波器块。
配置获得参数的获得块和分子参数的离散滤波器块作为模型参数:
在模型中,建模选项卡上,单击模型数据编辑器。
在模型数据编辑器中,选择参数选项卡。
使用价值列设置的值获得例如,参数变量
gainArg
。旁边
gainArg
,点击操作按钮并选择创建。在创建新的数据对话框中,设置价值来
金宝appSimulink.Parameter
和位置来模型的工作空间
。点击创建。在
金宝appSimulink.Parameter
属性对话框中,设置数据类型来双
和维来1
。离开空值(价值设置为“[]
”)。指定最小值,马克斯,复杂性值对象是可选的。配置对象作为模型参数,选择论点。
点击好吧。
重复步骤4到9分子参数的离散滤波器块。在这种情况下,创建一个
金宝appSimulink.Parameter
对象命名coeffArg
。
记住,模型本身不成功编译没有值的参数设置对象。
在父母的模型设置模型参数值
当你模拟一个父模型中,每个实例的一个可重用的引用模型使用您所指定的参数值,在父模型。这个例子展示了如何让一个模型参数的可调参数模型块模型的每一层的层次结构。
创建一个模型ex_model_arg
使用可重用模型的多个实例ex_model_arg_ref
前面的例子。
设置特定于您的模型参数值在模型中引用层次结构:
在模型中,建模选项卡上,单击模型数据编辑器。
在模型数据编辑器中,选择参数选项卡。模型数据编辑器显示四行,对应于特定的参数,您可以指定两个模型块。
使用模型数据编辑器来设置参数的值
模型
和Model1
。默认情况下,模型参数使用低于指定的最后一个值在模型层次结构(价值从下面< >
)。在这个数字替换默认的值。覆盖这些参数的值在模型层次结构的下一个级别,选择的复选框论点列。默认情况下,复选框没有被选中。
您还可以配置在每个特定的参数模型块。在块对话框中,选择实例参数选项卡。
提示
模型实例参数时不支持金宝app
使用当地的解算器引用模型
启用的解算器窗格中。创建一个模型
ex_model_arg_top
包含一个模型块的引用ex_model_arg
。在模型数据编辑器中,单击显示/刷新的额外信息按钮。在参数选项卡中,您可以看到每个特定参数公开为可调参数的参考模型。从这里,您可以创建一组参数值的所有实例
coeffArg
和gainArg
在模型层次结构参数。默认情况下,每个实例使用下面的最后一个值指定模型层次结构。在这种情况下,模型数据编辑器显示
< from_below >
。如果您选择了论点复选框父母公开参数模型,价值显示为<继承了>
表示运行时价值来自于父母。更新后的模型图,编辑也会显示编译后的实例的值。导航到这个默认值,单击按钮,旁边的三个垂直点编译价值和选择
导航到默认值
。上次指定的参考模型值会在新标签页中打开模型中的画布,和模型数据编辑器突出行包含块的参数。
组织多个模型参数为单一结构
您可以使用结构来减少维护的工作当你想添加、重命名或删除参数。结构,数学模型的功能是相同的。
更换与结构参数值ex_model_arg_ref
和ex_model_arg
遵循以下步骤:
在命令提示符处,创建一个结构。添加一个字段中的每个参数的对象
ex_model_arg_ref
工作区。structForInst1。获得= 3.17;structForInst1。多项式系数= 1.05;
在一个存储结构
金宝appSimulink.Parameter
对象。structForInst1 = 金宝appSimulink.Parameter (structForInst1);
模型浏览器打开。在参考模型中,
ex_model_arg_ref
,在建模选项卡上,单击模型浏览器。使用Model Explorer将基本工作空间的参数对象复制到
ex_model_arg_ref
模型的工作空间。在模型中工作区,重命名
structForInst1
作为structArg
。在内容窗格中,配置
structArg
作为唯一的模型参数。在
ex_model_arg_ref
模型,在模型数据编辑器参数选项卡,设置的值获得参数structArg.gain
和的值分子参数structArg.coeff
。保存模型。
在命令提示符下,复制现有的结构基础的工作区
structForInst2
。structForInst2 = (structForInst1)复印件;
设置字段值的两种结构通过使用相同的数字,你用于设置模型参数值模型块。
structForInst1.Value。获得= 2.98;structForInst1.Value。多项式系数= 0.98;structForInst2.Value。获得= 3.34;structForInst2.Value。多项式系数= 1.11;
在上面的模型中,
ex_model_arg
,使用模型数据编辑器来设置参数值如这个图所示。
使用总线对象数据类型的结构
您可以使用一个金宝appSimulink.Bus
对象的数据类型结构。对象确保特定结构的特点,如字段的名称和顺序,匹配的特征结构模型中的工作区。
在命令提示符处,使用函数
金宝appSimulink.Bus.createObject
创建一个金宝appSimulink.Bus
对象。元素对象的层次结构与层次结构的字段。对象的缺省名称slBus1
。金宝appSimulink.Bus.createObject (structForInst1.Value);
重命名总线对象
myParamStructType
通过复制它。myParamStructType = (slBus1)复印件;
在模型中数据的编辑
ex_model_arg
,单击显示/刷新的额外信息按钮。模型数据编辑器现在包含行对应参数基本工作空间中的对象,structForInst1
和structForInst2
。使用数据类型列的数据类型
structForInst1
和structForInst2
来总线:myParamStructType
。在模型中数据的编辑
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
对象作为模型参数来使用你的模型。
创建一个模型
ex_arg_LUT_ref
代表一个可重用的算法。使用Model Explorer,添加一个
金宝appSimulink.LookupTable
对象模型中工作区。您可以使用添加模型金宝appLookupTable按钮。名称的对象LUTArg
。在内容窗格中,为
LUTArg
,则选中该复选框论点列。集数量的维度表来
2
。在表和断点表格区域,指定的值表
,BP1
,BP2
数据。例如,配置表和断点数据通过输入这些值在MATLAB表达式框。表
- - - - - -(3 4;1 2)
BP1
- - - - - -(1 2)
BP2
- - - - - -[3 - 4]
当你从模拟或直接生成代码
ex_arg_LUT_ref
,该模型使用这些值。下结构体类型定义,设置的名字来
LUTArg_Type
。点击应用。
在内容窗格中,为
LUTArg
,则选中该复选框论点列。在参考模型中,一天的查找表块,设置数据规范来
查找表对象
。集的名字来LUTArg
。保存模型。
接下来,创建一个模型,使用可重用算法和指定的特定值金宝appSimulink.LookupTable
对象。
创建一个模型
ex_arg_LUT
可重用算法,它使用两次。在命令提示符处,创建一个
金宝appSimulink.LookupTable
对象模型中工作区。或者,您可以创建金宝appSimulink.LookupTable
对象在数据字典或基本工作空间。LUTForInst1 = 金宝appSimulink.LookupTable;
指定断点和表数据对象。
LUTForInst1.Table。值= [8 7;6 5];LUTForInst1.Breakpoints (1)。值= [5 - 6];LUTForInst1.Breakpoints (2)。值= (3 4);
指定一个结构类型的名字。匹配这个名字的名称指定的对象引用模型的工作区。
LUTForInst1.StructTypeInfo。Name =“LUTArg_Type”;
使用一个结构来创建特定于第二个参数值模型块。指定断点和表数据结构。
StructForInst2。表= [9 8;7 7];StructForInst2。BP1 = [3 - 4];StructForInst2。BP2 = [5 - 6];
在
ex_arg_LUT
模型,模型实例模型
,在实例参数选项卡,设置的值LUTArg来LUTForInst1
。对模型实例
Model1
,设置LUTArg来StructForInst2
。
的一个实例ex_arg_LUT_ref
使用表格和数据存储在断点金宝appSimulink.LookupTable
对象模型中工作区。其他实例使用了表和断点数据存储结构。
指定特定的值金宝appSimulink.LookupTable
和金宝appSimulink.Breakpoint
对象
这个例子显示了如何指定一个特定的价值金宝appSimulink.LookupTable
对象作为一个新的金宝appSimulink.LookupTable
对象。示例还显示了如何指定一个特定值金宝appSimulink.Breakpoint
对象的引用金宝appSimulink.LookupTable
对象。
首先,创建一个模型,该模型代表一个可重用的算法。配置一个金宝appSimulink.Breakpoint
对象和金宝appSimulink.LookupTable
对象引用金宝appSimulink.Breakpoint
对象模型参数。
创建一个模型
ex_arg_BP_ref
代表一个可重用的算法。使用Model Explorer,添加一个
金宝appSimulink.LookupTable
对象模型中工作区。您可以使用添加模型金宝appLookupTable按钮。名称的对象LUTArg
。在内容窗格中,为
LUTArg
,则选中该复选框论点列。集数量的维度表来
1
。指定表数据的价值
(1 2)
。集断点规范来
参考
。在断点节中,设置的名字来
BP1
。添加一个
金宝appSimulink.Breakpoint
对象模型中工作区。名称的对象BP1
并指定值[3 - 4]
。在内容窗格中,为
BP1
,则选中该复选框论点列。
接下来,创建一个模型,使用可重用算法和指定的特定值金宝appSimulink.LookupTable
对象和金宝appSimulink.Breakpoint
对象。
创建一个模型
ex_arg_BP
可重用算法,它使用两次。在命令提示符处,模型实例
模型
,创建一个金宝appSimulink.LookupTable
对象和一个金宝appSimulink.Breakpoint
对象模型中工作区。或者,您可以创建这些对象在数据字典或基本工作空间。LUTForInst1 = 金宝appSimulink.LookupTable;BPForInst1 = 金宝appSimulink.Breakpoint;
指定断点和表数据对象。您必须指定断点信息
LUTForInst1
这样特定的规范值匹配模型参数规格。然而,只有表数据推到子模型。LUTForInst1.Table。值= 8 [7];LUTForInst1。断点Specification =“参考”;LUTForInst1。断点= {“BPForInst1”};BPForInst1.Breakpoints。值= [5 - 6];
在
ex_arg_BP
模型,模型实例模型
,在实例参数选项卡,设置的值LUTArg来LUTForInst1
和的值BP1来BPForInst1
。对模型实例
Model1
,创建另一个金宝appSimulink.LookupTable
对象模型中工作区并指定表和断点数据。或者,您可以创建金宝appSimulink.LookupTable
对象在数据字典或基本工作空间。LUTForInst2 = 金宝appSimulink.LookupTable;BPForInst2 = 金宝appSimulink.Breakpoint;BPForInst2.Breakpoints。值= (11 12);LUTForInst2.Table。值= 10 [9];LUTForInst2。断点Specification =“参考”;LUTForInst2。断点= {“BPForInst2”};
对于这个模型实例,使用数组指定的特定值
金宝appSimulink.Breakpoint
对象。BPArrayForInst2 = 12 [11];
在
ex_arg_BP
模型,模型实例Model1
,在实例参数选项卡,设置的值LUTArg来LUTForInst2
。对于这个模型实例,设置值BP1的数组BPArrayForInst2
。
另请参阅
金宝appSimulink.Parameter
|金宝appSimulink.LookupTable
|金宝appSimulink.Breakpoint
|参数的作家|初始化函数|重置功能
相关的例子
- 参数化编程的参考模型
- 通过编程方式配置特定于查找表的数据
- 为可重用模型引用指定特定参数值(金宝app仿真软件编码器)