Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

使用 DataTypeStr 参数指定数据类型

与任何封装参数类似,DataTypeStr 参数可以从 Mask Editor 添加到封装对话框中。将 DataTypeStr 参数添加到封装对话框将允许模块的最终用户为关联的 Edit 类型参数指定可接受的数据类型。在定义封装时,您可以为 Edit 参数指定单个或多个数据类型。模块的最终用户可以从这些数据类型中选择。为 Edit 参数指定数据类型可为通过封装对话框提供的输入值定义规则。

DataTypeStr 参数还允许您为 Edit 参数指定最小值和最大值。您可以通过使用 MinMax 封装参数并将这些参数与 DataTypeStr 参数关联来实现此目的。DataTypeStr 参数可用于进行定点分析。

将数据类型与 Edit 参数相关联

  1. 打开您要在其中封装模块的模型。例如,打开 Mask Parameters 中的 DataTypeStr 模型。

  2. Subsystem Block 选项卡上选择 Subsystem 模块,在 Mask 组中,点击 Create Mask

    注意

    如果您正在编辑现有封装,要打开 Mask Editor,请在 Subsystem Block 选项卡的 Mask 组中,点击 Edit Mask

  3. 在 Mask Editor 中,点击 Parameters & Dialog 窗格并添加 EditMinMaxDataTypeStr 参数。

  4. 要为 Edit 参数指定数据类型,请在 Mask Editor 的 Dialog box 部分中选择 DataTypeStr,然后点击 Property editor 窗格中 Type options 旁边的按钮。Type options Editor 具有一个选项卡式用户界面,其中包含下列针对数据类型规则的选项卡。

    1. Inherit rules - 指定用于确定数据类型的继承规则。继承规则分为三个类别:Common Simulink 规则、Custom 规则和 Advanced Simulink 规则。默认情况下,Common Simulink 规则和 Advanced Simulink 规则在 Inherit rules 选项卡下可用。Advanced 规则部分允许您从断点数据、常量值、增益、表数据、逻辑数据、累加器、乘积输出和 Simulink 中继承规则。它还允许您为所有端口输入相同的字长和使用相同的数据类型。仅当在 MATLAB 搜索路径上注册了自定义继承规则时,Custom 规则才会在 Inherit rules 选项卡下列出。有关某些继承规则的定义,请参阅数据类型继承规则

    2. Built-in types:指定一个或多个内置 Simulink® 数据类型,如 doublesingle。有关详细信息,请参阅 Simulink 支持的数据类型

    3. Fixed-point:指定定点数据类型的定标和符号模式。有关详细信息,请参阅指定定点数据类型

    4. User-defined:指定总线对象、枚举 (enum) 数据类型或字符串。有关详细信息,请参阅指定枚举数据类型指定总线对象数据类型Simulink 字符串

    5. Associations:将数据类型参数与 Edit 参数关联。您还可以将 MinMax 参数关联到 Edit 参数。

  5. 要保存规则选择,请在 Type Options Editor 中点击 OK

  6. 要保存更改并退出 Mask Editor,请点击 OK

以编程方式查看 DataTypeStr

您可以在 MATLAB® 命令行窗口中使用 Simulink.Mask.get 命令来查看为模块封装指定的数据类型值。MATLAB 使用预定义的命名法在命令行中表示数据类型信息。

此示例说明如何以编程方式查看示例模型封装参数的 DataTypeStr 参数。

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: ''

结果显示为 DataTypeStr 参数定义的属性。此示例定义指定类型选项的命名法:

Type: 'unidt({a=4|2|3|1}{i=Inherit: auto|Inherit: Inherit via internal rule}{b=double|single})'

此处,Type 显示为 DataTypeStr 参数指定的值,并具有以下定义:

  • a 定义 Associations,其对应值为 4231。这些值是参数的索引编号,依次代表 DataTypeStrMinMaxEdit 参数。

  • iInherit rules 及其对应的值定义为 Inherit: Same as first input

  • bBuilt-in types 及其对应的值定义为 doublesingle

另请参阅