使用数据类型助手指定数据类型
数据类型助手是一种交互式图形工具,用于简化为模块和数据对象指定数据类型的任务。该助手出现在模块和对象对话框上,与提供数据类型控制的参数(例如输出数据类型参数)相邻。例如,它出现在 Constant 模块的“模块参数”对话框的信号属性选项卡上。
您可以通过点击适用的按钮来选择显示或隐藏数据类型助手:
点击显示数据类型助手按钮 显示助手。
点击隐藏数据类型助手按钮 隐藏显示的助手。
可以使用数据类型助手来指定数据类型,如下所示:
从模式列表中,选择要指定的数据类型类别。一般情况下,会包括下面这些选项。
模式 描述 继承
数据类型的继承规则
内置
内置数据类型
定点
定点数据类型
枚举
枚举数据类型
总线对象
总线对象数据类型
图像
Simulink 图像数据类型 (Computer Vision Toolbox™)
值类型
特定于应用的值类型,如风速
表达式
计算结果为数据类型的表达式
助手会动态更改以显示与选定模式对应的不同选项。例如,在 Constant 模块的“模块参数”对话框中,将模式设置为表达式,会更新输出数据类型和模式旁边的框中的值。
在模式列表的右侧,选择或输入数据类型。
例如,假设您将变量
myDataType
指定为single
数据类型的别名。您通过输入以下命令创建Simulink.AliasType
类的实例并设置其BaseType
属性。myDataType = Simulink.AliasType myDataType.BaseType = 'single'
您可以使用此数据类型对象来指定 Constant 模块的输出数据类型。输入数据类型别名
myDataType
作为助手中表达式的值。点击确定或应用应用您的更改。
助手使用您指定的数据类型填充模块或对象对话框中的关联数据类型参数。例如,Constant 模块的输出数据类型参数指定的表达式与您使用助手输入的表达式相同。
有关可以使用数据类型助手指定的数据类型的详细信息,请参阅输入有效数据类型值。有关指定定点数据类型的详细信息,请参阅Specify Fixed-Point Data Types with the Data Type Assistant (Fixed-Point Designer)。
指定定点数据类型
当数据类型助手的模式为定点时,数据类型助手显示用于指定有关您的定点数据类型的信息的字段。例如,下图显示 Gain 模块的“模块参数”对话框,其中选择了信号属性选项卡并指定了定点数据类型。
如果定标是斜率和偏置而不是二进制小数点,则数据类型助手将显示斜率字段和偏置字段,而不是小数长度字段:
您可以使用数据类型助手来设置下列定点属性:
符号性
指定您希望定点数据为有符号还是无符号。有符号数据可以表示正值和负值,无符号数据只表示正值。默认设置是有符号。
字长
指定用来存储量化整数的字的位大小。较大的字长代表较大的值,其精度也高于较小的字长。字长可以是 0 到 65,535 之间的任何整数。默认的位大小是 16。
定标
指定定点数据的定标方法,以避免发生溢出情况并最大限度地减少量化误差。默认方法是二进制小数点定标。您可以选择以下两种定标模式之一:
定标模式 | 描述 |
---|---|
二进制小数点 | 如果选择此模式,数据类型助手将显示小数长度字段,用于指定二进制小数点位置。 二进制小数点可以是正整数或负整数。正整数将二进制小数点从最右侧位左移指定位数。例如,如果输入 2,则将二进制小数点设置在从右侧数第二个位的前面。负整数将二进制小数点从最右侧位右移指定位数,如以下示例所示:
默认二进制小数点为 0。 |
斜率和偏置 | 如果选择此模式,数据类型助手将显示用于输入斜率和偏置的字段。 斜率可以是任何正实数,默认斜率为 1.0。偏置可以是任何实数,默认偏置为 0.0。您可以通过表达式的形式输入斜率和偏置,在表达式中包含在 MATLAB® 工作区中定义的参数。 |
注意
尽可能使用二进制小数点定标,以简化定点数据在生成的代码中的实现。采用二进制小数点定标的定点数据运算只需进行简单的位移,不需要为单独的斜率和偏置值执行代价高昂的代码实现。
有关定点定标的详细信息,请参阅定标 (Fixed-Point Designer)。
数据类型覆盖
当模式是内置或定点时,您可以使用数据类型覆盖选项指定您希望此数据类型继承还是忽略针对其上下文(即:Simulink® 中使用该信号的模块、Simulink.Signal
对象或 Stateflow® 图)指定的数据类型覆盖设置。默认行为是 inherit。
数据类型覆盖模式 | 描述 |
---|---|
inherit(默认值) | 从信号的上下文(即:从 Simulink 中使用该信号的模块、 |
off | 忽略信号上下文的数据类型覆盖设置,并使用为信号指定的定点数据类型。 |
由于能够关闭单个数据类型的数据类型覆盖,您可以在应用数据类型覆盖时更好地控制模型中的数据类型。例如,您可以使用此选项确保数据类型满足下游模块的要求,而忽略数据类型覆盖设置。
计算最佳精度定标
点击此按钮可根据指定的最小值和最大值为二进制小数点和斜率和偏置定标计算最佳精度值。Simulink 在小数长度字段或斜率和偏置字段中显示定标值。有关详细信息,请参阅Constant Scaling for Best Precision (Fixed-Point Designer)。
显示定点详细信息
当您指定定点数据类型时,可以使用定点详细信息子窗格查看有关数据类型助手中当前显示的定点数据类型的信息。要查看该子窗格,请点击数据类型助手中定点详细信息旁边的扩展按钮。定点详细信息子窗格出现在数据类型助手的底部:
标签为 Output minimum
和 Output maximum
的行显示的值与数据类型助手上方的对应输出最小值和输出最大值字段中显示的值相同。这些字段的名称可能与图中所示不同。例如,定点模块参数将显示参数最小值和参数最大值,对应的定点详细信息行也将具有相应的标签。有关详细信息,请参阅指定信号范围和指定模块参数的最小值和最大值。
标签为 Representable minimum
、Representable maximum
和 Precision
的行会始终显示。这些行显示可由数据类型助手中当前显示的定点数据类型表示的最小值、最大值和精度。
如果点击计算最佳精度定标,或者更改范围限制、定义定点数据类型的值或模型中其他任何位置的任何内容,定点详细信息子窗格显示的值都不会自动更新。要更新定点详细信息子窗格中显示的值,请点击刷新详细信息。数据类型助手将随之更新或重新计算所有值并显示结果。
点击刷新详细信息不会更改模型中的任何内容,而只会更改显示。点击确定或应用可使显示的值生效。如果在不先编译模型的情况下无法识别某个字段的值,定点详细信息子窗格会将该值显示为 Unknown
。
如果点击刷新详细信息时发生错误,定点详细信息子窗格会在相应行的左侧显示错误标志,并在右侧显示错误描述。例如,下图显示了两个错误:
标签为 Output minimum
的行显示错误 Cannot evaluate
,因为对在输出最小值字段中指定的表达式 MySymbol
求值时没有返回适当的数值。如果表达式未计算成功,定点详细信息子窗格会显示未计算成功的表达式(根据需要截断为 10 个字符以节省空间),而不显示值。
在这种情况下,要更正错误,您需要在可访问的工作区中定义 MySymbol
以提供适当的数值。点击刷新详细信息后,MySymbol
的值将取代其未计算成功的文本,错误指示符和错误描述也将消失。
要更正 Output maximum
处显示的错误,您需要执行减小输出最大值、增大字长和减小小数长度这三项更改中的一项或几项,以使定点数据类型足以表示它可以具有的最大值。
与特定模块相关的其他值也可能出现在定点详细信息子窗格中。例如,在 Discrete-Time Integrator 模块的信号属性选项卡上,子窗格可能如下所示:
针对饱和上限和饱和下限显示的值处于灰显状态。这类显示表明该模块当前未使用对应的参数。灰显值可以忽略。
为了节省空间,初始条件显示向量或矩阵中的最小值和最大值,而使用省略号表示其他值。向量或矩阵的基本定义不受影响。
锁定输出数据类型设置以防止被定点工具更改
选中此复选框可防止用定点工具或定点顾问选择的类型替换当前数据类型。有关定点数据自动定标的说明,请参阅定标 (Fixed-Point Designer)。
指定枚举数据类型
您可以使用数据类型助手将枚举对象指定为模块的数据类型。在数据类型助手中,将模式设置为枚举,并指定枚举对象。
有关枚举数据类型的详细信息,请参阅数据类型。
指定总线对象数据类型
您可以使用数据类型助手将 Simulink.Bus
对象指定为模块或数据对象的数据类型。
有关支持
Simulink.Bus
对象数据类型的模块的信息,请参阅 使用总线对象指定总线属性。可以使用“模块参数”对话框访问“数据类型助手”。对于
Simulink.Signal
和Simulink.Parameter
对象,请使用模型资源管理器访问数据类型助手。对于
Simulink.BusElement
对象,请使用类型编辑器访问数据类型助手。
在数据类型助手中,将模式设置为总线对象,并指定 Simulink.Bus
对象。
有关指定 Simulink.Bus
对象数据类型的详细信息,请参阅使用总线对象指定总线属性。
指定图像数据类型
如果您有 Computer Vision Toolbox,可以使用数据类型助手将 Simulink.ImageType
(Computer Vision Toolbox) 对象指定为模块或数据对象的数据类型。
在数据类型助手中,将模式设置为图像,并指定 Simulink.ImageType
对象。
您可以使用数据类型助手来设置下列图像属性:
颜色格式
将基础图像数据的颜色格式指定为以下格式之一:
RGB
BGR
BGRA
灰度
颜色格式确定图像中像素的每个颜色通道所表示的内容。默认设置是 RGB。
布局
将图像中矩阵数据的内存排列指定为 ColumnMajor 或 RowMajor。默认设置是 ColumnMajor。
类基础
将基础图像数据的数据类型指定为以下类型之一:
uint8
uint16
uint32
int8
int16
int32
single
double
默认设置为 uint8。
行
将图像数据中的行数指定为正整数。默认设置为 480
。
列
将图像数据中的列数指定为正整数。默认设置为 640
。
通道
将数组中每个像素的颜色通道或采样数指定为以下数字之一:
1
3
4
通道的数量必须对应于图像数据的颜色格式中的颜色通道数。这些值是支持的颜色格式的 Channels
的值。
颜色格式 | 通道 |
---|---|
Grayscale | 1 |
RGB | 3 |
BGR | 3 |
BGRA | 4 |
默认设置为 3
。
指定值类型
您可以使用数据类型助手将 Simulink.ValueType
对象指定为模块或 Simulink.BusElement
对象的数据类型。
有关支持
ValueType
对象数据类型的模块的信息,请参阅Simulink.ValueType
。可以使用“模块参数”对话框访问“数据类型助手”。对于
Simulink.BusElement
对象,请使用类型编辑器访问数据类型助手。
在数据类型助手中,将模式设置为值类型,并指定 ValueType
对象。
有关指定值类型的详细信息,请参阅Specify Common Set of Signal Properties as Value Type。
另请参阅
Simulink.NumericType
| fixdt
| Simulink.ImageType
(Computer Vision Toolbox)