Main Content

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

使用数据类型助手指定数据类型

数据类型助手是一种交互式图形工具,用于简化为模块和数据对象指定数据类型的任务。该助手出现在模块和对象对话框上,与提供数据类型控制的参数(例如输出数据类型参数)相邻。例如,它出现在 Constant 模块的“模块参数”对话框的信号属性选项卡上。

The Data Type Assistant appears below the data type parameter in the Constant block parameters dialog box.

您可以通过点击适用的按钮来选择显示或隐藏数据类型助手

  • 点击显示数据类型助手按钮 显示助手。

  • 点击隐藏数据类型助手按钮 隐藏显示的助手。

可以使用数据类型助手来指定数据类型,如下所示:

  1. 模式列表中,选择要指定的数据类型类别。一般情况下,会包括下面这些选项。

    模式描述

    继承

    数据类型的继承规则

    内置

    内置数据类型

    定点

    定点数据类型

    枚举

    枚举数据类型

    总线对象

    总线对象数据类型

    值类型

    特定于应用的值类型,如风速

    表达式

    计算结果为数据类型的表达式

    助手会动态更改以显示与选定模式对应的不同选项。例如,在 Constant 模块的“模块参数”对话框中,将模式设置为“表达式”,会更新输出数据类型模式旁边的框中的值。

    The Constant block parameters dialog box shows that the value for each box is now <data type expression>.

  2. 模式列表的右侧,选择或输入数据类型。

    例如,假设您将变量 myDataType 指定为 single 数据类型的别名。您通过输入以下命令创建 Simulink.AliasType 类的实例并设置其 BaseType 属性。

    myDataType = Simulink.AliasType
    myDataType.BaseType = 'single'

    您可以使用此数据类型对象来指定 Constant 模块的输出数据类型。输入数据类型别名 myDataType 作为助手中表达式的值。

    The value for each box is now myDataType.

  3. 点击确定应用应用您的更改。

    助手使用您指定的数据类型填充模块或对象对话框中的关联数据类型参数。例如,Constant 模块的输出数据类型参数指定的表达式与您使用助手输入的表达式相同。

    The boxes no longer have formatting that indicates the values are modified.

有关可以使用数据类型助手指定的数据类型的详细信息,请参阅输入有效数据类型值有关指定定点数据类型的详细信息,请参阅Specify Fixed-Point Data Types with the Data Type Assistant (Fixed-Point Designer)

指定定点数据类型

当数据类型助手的模式为“定点”时,数据类型助手显示用于指定有关您的定点数据类型的信息的字段。例如,下图显示 Gain 模块的“模块参数”对话框,其中选择了信号属性选项卡并指定了定点数据类型。

如果定标是“斜率和偏置”而不是“二进制小数点”,则数据类型助手将显示斜率字段和偏置字段,而不是小数长度字段:

您可以使用数据类型助手来设置下列定点属性:

符号性

指定您希望定点数据为“有符号”还是“无符号”。有符号数据可以表示正值和负值,无符号数据只表示正值。默认设置是“有符号”。

字长

指定用来存储量化整数的字的位大小。较大的字长代表较大的值,其精度也高于较小的字长。字长可以是 0 到 128 之间的任何整数。默认的位大小是 16。

定标

指定定点数据的定标方法,以避免发生溢出情况并最大限度地减少量化错误。默认方法是“二进制小数点”定标。您可以选择以下两种定标模式之一:

定标模式描述
二进制小数点

如果选择此模式,数据类型助手将显示小数长度字段,用于指定二进制小数点位置。

二进制小数点可以是正整数或负整数。正整数将二进制小数点从最右侧位左移指定位数。例如,如果输入 2,则将二进制小数点设置在从右侧数第二个位的前面。负整数将二进制小数点从最右侧位右移指定位数,如以下示例所示:

默认二进制小数点为 0。

斜率和偏置

如果选择此模式,数据类型助手将显示用于输入斜率偏置的字段。

斜率可以是任何正实数,默认斜率为 1.0。偏置可以是任何实数,默认偏置为 0.0。您可以通过表达式的形式输入斜率和偏置,在表达式中包含在 MATLAB® 工作区中定义的参数。

注意

尽可能使用二进制小数点定标,以简化定点数据在生成的代码中的实现。采用二进制小数点定标的定点数据运算只需进行简单的位移,不需要为单独的斜率和偏置值执行代价高昂的代码实现。

有关定点定标的详细信息,请参阅Scaling (Fixed-Point Designer)

数据类型覆盖

模式是“内置”或“定点”时,您可以使用数据类型覆盖选项指定您希望此数据类型继承还是忽略针对其上下文(即:Simulink® 中使用该信号的模块、Simulink.Signal 对象或 Stateflow® 图)指定的数据类型覆盖设置。默认行为是 “inherit”。

数据类型覆盖模式描述
inherit”(默认值)

从信号的上下文(即:从 Simulink 中使用该信号的模块、Simulink.Signal 对象或 Stateflow 图)中继承数据类型覆盖设置。

off

忽略信号上下文的数据类型覆盖设置,并使用为信号指定的定点数据类型。

由于能够关闭单个数据类型的数据类型覆盖,您可以在应用数据类型覆盖时更好地控制模型中的数据类型。例如,您可以使用此选项确保数据类型满足下游模块的要求,而忽略数据类型覆盖设置。

计算最佳精度定标

点击此按钮可根据指定的最小值和最大值为“二进制小数点”和“斜率和偏置”定标计算最佳精度值。Simulink 在小数长度字段或斜率偏置字段中显示定标值。有关详细信息,请参阅Constant Scaling for Best Precision (Fixed-Point Designer)

显示定点详细信息

当您指定定点数据类型时,可以使用定点详细信息子窗格查看有关数据类型助手中当前显示的定点数据类型的信息。要查看该子窗格,请点击数据类型助手中定点详细信息旁边的扩展按钮。定点详细信息子窗格出现在数据类型助手的底部:

标签为 Output minimumOutput maximum 的行显示的值与数据类型助手上方的对应输出最小值输出最大值字段中显示的值相同。这些字段的名称可能与图中所示不同。例如,定点模块参数将显示参数最小值参数最大值,对应的定点详细信息行也将具有相应的标签。有关详细信息,请参阅指定信号范围指定模块参数的最小值和最大值

标签为 Representable minimumRepresentable maximumPrecision 的行会始终显示。这些行显示可由数据类型助手中当前显示的定点数据类型表示的最小值、最大值和精度。

如果点击计算最佳精度定标,或者更改范围限制、定义定点数据类型的值或模型中其他任何位置的任何内容,定点详细信息子窗格显示的值都不会自动更新。要更新定点详细信息子窗格中显示的值,请点击刷新详细信息。数据类型助手将随之更新或重新计算所有值并显示结果。

点击刷新详细信息不会更改模型中的任何内容,而只会更改显示。点击确定应用可使显示的值生效。如果在不先编译模型的情况下无法识别某个字段的值,定点详细信息子窗格会将该值显示为 Unknown

如果点击刷新详细信息时发生错误,定点详细信息子窗格会在相应行的左侧显示错误标志,并在右侧显示错误描述。例如,下图显示了两个错误:

标签为 Output minimum 的行显示错误 Cannot evaluate,因为对在输出最小值字段中指定的表达式 MySymbol 求值时没有返回适当的数值。如果表达式未计算成功,定点详细信息子窗格会显示未计算成功的表达式(根据需要截断为 10 个字符以节省空间),而不显示值。

在这种情况下,要更正错误,您需要在可访问的工作区中定义 MySymbol 以提供适当的数值。点击刷新详细信息后,MySymbol 的值将取代其未计算成功的文本,错误指示符和错误描述也将消失。

要更正 Output maximum 处显示的错误,您需要执行减小输出最大值、增大字长和减小小数长度这三项更改中的一项或几项,以使定点数据类型足以表示它可以具有的最大值。

与特定模块相关的其他值也可能出现在定点详细信息子窗格中。例如,在 Discrete-Time Integrator 模块的信号属性选项卡上,子窗格可能如下所示:

针对饱和上限饱和下限显示的值处于灰显状态。这类显示表明该模块当前未使用对应的参数。灰显值可以忽略。

为了节省空间,初始条件显示向量或矩阵中的最小值和最大值,而使用省略号表示其他值。向量或矩阵的基本定义不受影响。

锁定输出数据类型设置以防止被定点工具更改

选中此复选框可防止用定点工具或定点顾问选择的类型替换当前数据类型。有关定点数据自动定标的说明,请参阅Scaling (Fixed-Point Designer)

指定枚举数据类型

您可以使用数据类型助手将枚举对象指定为模块的数据类型。在数据类型助手中,将模式设置为“枚举”,并指定枚举对象。

The Constant block parameters dialog box shows that the output data type is set to Enum: myEnum.

有关枚举数据类型的详细信息,请参阅数据类型

指定总线对象数据类型

您可以使用数据类型助手Simulink.Bus 对象指定为模块或数据对象的数据类型。

  • 有关支持 Bus 对象数据类型的模块的信息,请参阅 总线的数据类型。可以使用“模块参数”对话框访问“数据类型助手”。

  • 对于 Simulink.SignalSimulink.Parameter 对象,请使用模型资源管理器访问数据类型助手。

  • 对于 Simulink.BusElement 对象,请使用总线编辑器访问数据类型助手。

数据类型助手中,将模式设置为“总线对象”,并指定 Bus 对象。

The Constant block parameters dialog box shows that the output data type is set to Bus: myBusObject.

有关指定 Bus 对象数据类型的详细信息,请参阅使用 Simulink.Bus 对象数据类型指定总线属性

指定值类型

您可以使用数据类型助手Simulink.ValueType 对象指定为模块或 Simulink.BusElement 对象的数据类型。

  • 有关支持 ValueType 对象数据类型的模块的信息,请参阅 Simulink.ValueType。可以使用“模块参数”对话框访问“数据类型助手”。

  • 对于 Simulink.BusElement 对象,请使用总线编辑器访问数据类型助手。

数据类型助手中,将模式设置为“值类型”,并指定 ValueType 对象。

The Outport block parameters dialog box shows that the data type is set to ValueType: myValueType.

有关指定值类型的详细信息,请参阅Specify Application-Specific Signal Properties

另请参阅

|

相关主题