使用“数据类型字符串”参数指定数据类型
与任何封装参数类似,数据类型参数可以从封装编辑器添加到封装对话框中。将数据类型参数添加到封装对话框将允许模块的最终用户为关联的编辑类型参数指定可接受的数据类型。在定义封装时,您可以为编辑参数指定单个或多个数据类型。模块的最终用户可以从这些数据类型中选择。为编辑参数指定数据类型可为通过封装对话框提供的输入值定义规则。
数据类型参数还允许您为编辑参数指定最小值和最大值。您可以通过使用最小和最大封装参数并将这些参数与数据类型参数关联来实现此目的。数据类型参数可用于进行定点分析。
将数据类型与“编辑”参数相关联
打开您要在其中封装模块的模型。例如,在Types of Mask Parameters中打开
DataTypeStr
模型。在 Subsystem 模块选项卡上选择 Subsystem 模块,在封装组中,点击创建掩膜。
注意
如果您正在编辑现有封装,要打开封装编辑器,请在 Subsystem 模块选项卡的封装组中,点击编辑封装。
在封装编辑器中,点击参数和对话框窗格并添加编辑、最小、最大、数据类型参数。
要为编辑参数指定数据类型,请在封装编辑器的对话框部分中选择数据类型,然后点击属性编辑器窗格中类型选项旁边的按钮。类型选项编辑器具有一个选项卡式用户界面,其中包含下列针对数据类型规则的选项卡。
继承规则 - 指定用于确定数据类型的继承规则。继承规则分为三个类别:常见 Simulink 规则、自定义规则和高级 Simulink 规则。默认情况下,常见 Simulink 规则和高级 Simulink 规则在继承规则选项卡下可用。高级规则部分允许您从断点数据、常量值、增益、表数据、逻辑数据、累加器、乘积输出和 Simulink 中继承规则。它还允许您为所有端口输入相同的字长和使用相同的数据类型。仅当在 MATLAB® 搜索路径上注册了自定义继承规则时,自定义规则才会在继承规则选项卡下列出。有关某些继承规则的定义,请参阅数据类型继承规则。
内置类型:指定一个或多个内置 Simulink® 数据类型,如
double
或single
。有关详细信息,请参阅 Simulink 支持的数据类型。定点:指定定点数据类型的定标和符号模式。有关详细信息,请参阅指定定点数据类型。
用户定义:指定总线对象、枚举 (enum) 数据类型或字符串。有关详细信息,请参阅指定枚举数据类型、指定总线对象数据类型 和 Simulink 字符串。
关联:将数据类型参数与编辑参数关联。您还可以将最小和最大参数关联到编辑参数。
要保存规则选择,请在类型选项编辑器中点击确定。
要保存更改并退出封装编辑器,请点击确定。
以编程方式查看数据类型字符串
您可以在 MATLAB 命令行窗口中使用 Simulink.Mask.get
命令来查看为模块封装指定的数据类型值。MATLAB 使用预定义的命名法在命令行中表示数据类型信息。
要以编程方式查看示例模型的 DataTypeStr 参数,请浏览模型的Types of Mask Parameters。
maskobj = Simulink.Mask.get(gcb)
maskobj = Mask with properties: Type: '' Description: '' Help: '' Initialization: '' SelfModifiable: 'off' Display: '' IconFrame: 'on' IconOpaque: 'opaque' RunInitForIconRedraw: 'off' IconRotate: 'none' PortRotate: 'default' IconUnits: 'autoscale' Parameters: [1×4 Simulink.MaskParameter] BaseMask: [0×0 Simulink.Mask] ParameterConstraints: [0×0 Simulink.Mask.Constraints] BlockConstraintRules: [0×0 Simulink.Mask.BlockConstraints] ConstraintParamAssociator: [0×0 Simulink.Mask.ConstraintParamAssociator]
maskobj.getParameter('DataTypeStrParameter')
ans = MaskParameter with properties: Type: 'unidt({a=4|2|3|1}{i=Inherit: auto|Inherit: Inherit via internal rule}{b=double|single})' TypeOptions: {0×1 cell} Name: 'DataTypeStrParameter' Prompt: 'Output data type' Value: 'Inherit: auto' Evaluate: 'on' Tunable: 'off' NeverSave: 'off' Hidden: 'off' ReadOnly: 'off' Enabled: 'on' Visible: 'on' ShowTooltip: 'on' Callback: '' Alias: ''
结果显示为“数据类型字符串”参数定义的属性。此示例定义指定类型选项的命名法:
Type: 'unidt({a=4|2|3|1}{i=Inherit: auto|Inherit: Inherit via internal rule}{b=double|single})'
此处,Type
显示为数据类型字符串参数指定的值,并具有以下定义:
a
定义关联,其对应值为4
、2
、3
、1
。这些值是参数的索引编号,依次代表数据类型字符串、最小、最大和编辑参数。i
将继承规则及其对应的值定义为Inherit: Same as first input
。b
将内置类型及其对应的值定义为double
和single
。