主要内容

数据类型转换

将输入信号转换为指定的数据类型

  • 库:
  • Simulink /常用块

    Simulink /信号属性

    HDL编码器/常用块

    HDL编码器/ HDL浮点运算

    HDL编码器/信号属性

  • 数据类型转换块

描述

数据类型转换block转换任意Simulink的输入信号®数据类型转换为您指定的数据类型。

请注意

控件可通过指定块参数来控制输出数据类型,或从下游块继承数据类型数据类型转换块。若要从模型中的不同信号继承数据类型,请使用继承的数据类型转换块。

转换定点信号

在定点数据类型之间转换时,输入和输出相等参数控制块行为。在以下情况下,此参数不会改变块的行为:

  • 输入和输出没有固定的数据类型。

  • 输入或输出具有具有简单伸缩性的定点数据类型。

有关定点数的详细信息,请参见Simulink中的定点数(定点设计师)

若要将信号从一种数据类型转换为另一种数据类型,并试图保留输入信号的实际值,请选择真实价值(RWV),默认设置。该块解释了输入和输出缩放所施加的限制,并试图生成与实际世界值相等的输出。

若要通过对存储的整数值执行缩放重新解释来更改输入信号的实际值,请选择存储整数(SI)。在指定数据类型的限制范围内,该块在转换过程中尝试保存存储的信号整数值。最佳实践是使用相同的字长和符号指定输入和输出数据类型。这样做可以确保块只改变信号的缩放。为输入和输出指定不同的符号或字长可能会产生意想不到的结果,例如范围丢失或意想不到的符号扩展。有关示例,请参见在Simulink模型中转换数据类型

如果您选择存储整数(SI),该块不会对浮点输入信号执行较低级别的位重解释。例如,如果输入是有价值5,在内存中存储输入的位以十六进制形式由以下命令给出。

num2hex(单(5))
40 a00000

然而,数据类型转换块不将存储的整数值视为40 a00000而是作为现实世界的价值,5。转换后,输出的存储整数值为5

施放枚举信号

使用一个数据类型转换块转换枚举信号,如下所示:

  1. 将枚举类型的信号转换为任何数字类型的信号。

    类中输入的所有枚举值的基础整数数据类型转换块必须在数值类型的范围内。否则,模拟时会出现错误。

  2. 将任何整数类型的信号强制转换为枚举类型的信号。

    的值输入数据类型转换块必须匹配枚举值的底层值。否则,模拟时会出现错误。

    您可以启用饱和整数溢出参数,以便当输入到块的值与枚举值的底层值不匹配时,Simulink使用枚举类型的默认值。看到枚举的类型强制转换(仿真软件编码器)

你不能使用数据类型转换在这些情况下阻塞:

  • 将非整数数字信号转换为枚举信号。

  • 将复杂信号强制转换为枚举信号,而不考虑复杂信号的实部和虚部的数据类型。

看到仿真软件枚举有关使用枚举类型的信息。

港口

输入

全部展开

输入信号,指定为标量、矢量、矩阵或N-D数组。输入可以是任何实值或复值信号。如果输入是实数,输出也是实数。如果输入是复数,输出也是复数。该块将输入信号转换为输出数据类型你指定。

转换定点数据类型时,请使用输入和输出相等参数确定转换是否基于真实价值(RWV)存储整数(SI)信号的值。有关更多信息,请参见转换定点信号

数据类型:||一半|int8|int16|int32|int64|uint8|uint16|uint32|uint64|布尔|不动点|枚举

输出

全部展开

输出信号,转换为您指定的数据类型,具有与输入信号相同的维度。

数据类型:||一半|int8|int16|int32|int64|uint8|uint16|uint32|uint64|布尔|不动点|枚举

参数

全部展开

Simulink检查的输出范围的较低值。

Simulink使用最小值来执行:

请注意

输出最小不饱和或剪辑实际输出信号。使用饱和块来代替。

编程使用

块参数OutMin
类型:字符向量
“[]”|标量
默认的“[]”

Simulink检查的输出范围的最大值。

Simulink使用最大值执行:

请注意

输出最大不饱和或剪辑实际输出信号。使用饱和块来代替。

编程使用

块参数OutMax
类型:字符向量
“[]”|标量
默认的“[]”

选择输出的数据类型。类型可以被继承、直接指定或表示为数据类型对象,例如仿真软件。NumericType

编程使用

块参数:OutDataTypeStr
类型:特征向量
价值观:“继承:通过反向传播继承”|“双”|“单一”|“一半”|“int8”|“uint8”|“int16”|“uint16”|“int32”|“uint32”|“int64”|“uint64”|“fixdt(16)”|“fixdt(0) 1, 16日”|“fixdt(1, 16日2 ^ 0,0)”|Enum: <类名>'<数据类型表达式>'
默认值:“继承:通过反向传播继承”

选择此参数可防止定点工具覆盖输出您在块上指定的数据类型。有关更多信息,请参见使用锁输出数据类型设置(定点设计师)

编程使用

块参数:LockScale
类型:特征向量
价值观:'off' | 'on'
默认值:“关闭”

在定点数据表示的上下文中,指定哪种类型的输入和输出必须相等。

  • 真实价值(RWV)的目标真实价值(RWV)输入等于真实价值(RWV)输出的。

  • 存储整数(SI)的目标存储整数(SI)的值存储整数(SI)输出的值。

编程使用

块参数:ConvertRealWorld
类型:特征向量
价值观:'实际值(RWV)' '存储整数(SI)' '
默认值:“真实世界价值(RWV)”

选择其中一种舍入模式。

天花板

将正数和负数四舍五入到正无穷。等价于MATLAB®装天花板函数。

收敛

将数字舍入到最接近的可表示值。如果出现平局,则舍入到最接近的偶数。相当于定点设计器™收敛函数。

地板上

将正数和负数四舍五入到负无穷。等价于MATLAB地板上函数。

最近的

将数字舍入到最接近的可表示值。如果出现平局,则四舍五入为正无穷。相当于定点设计器最近的函数。

将数字舍入到最接近的可表示值。如果出现平局,则将正数四舍五入到正无穷,将负数四舍五入到负无穷。相当于定点设计器函数。

简单的

自动在朝向下限的四舍五入和朝向零的四舍五入之间进行选择,以生成尽可能高效的四舍五入代码。

把数字舍入到零。等价于MATLAB修复函数。

编程使用

块参数RndMeth
类型:字符向量
“天花板”|“收敛”|“地板”|“最近的”|“圆”|“简单”|“零”
默认的“地板”

另请参阅

有关更多信息,请参见舍入(定点设计师)

指定溢出是饱和还是包裹。

  • -溢出包装为数据类型可以表示的适当值。

    例如,数字130不适合有符号的8位整数,它被换行为-126。

  • —溢出饱和到数据类型可以表示的最小值或最大值。

    例如,与有符号8位整数相关的溢出可以饱和到-128或127。

提示

  • 当您的模型有可能溢出,并且您想要在生成的代码中显式的饱和保护时,请考虑选择此复选框。

  • 当您希望优化生成代码的效率时,请考虑取消此复选框。

    清除此复选框还有助于避免过度指定块如何处理超出范围的信号。有关更多信息,请参见排除信号范围错误

  • 选中此复选框后,饱和将应用于块上的每个内部操作,而不仅仅是输出或结果。

  • 通常,代码生成过程可以检测不可能出现溢出的情况。在这种情况下,代码生成器不会产生饱和代码。

编程使用

块参数:SaturateOnIntegerOverflow
类型:特征向量
价值观:'off' | 'on'
默认值:“关闭”

将采样时间指定为其他值-1。有关更多信息,请参见指定采样时间

依赖关系

此参数不可见,除非显式地设置为其他值-1。要了解更多信息,请参见不建议采样时间的块

编程使用

块参数:SampleTime
类型:字符串标量或字符向量
默认值:“1”

块特征

数据类型

布尔||枚举|不动点|一半|整数|

直接引线

是的

多维信号

是的

适应信号

是的

讨论二阶导数过零检测

没有

扩展功能

C/ c++代码生成
使用Simulink®Coder™生成C和c++代码。

PLC代码生成
使用Simulink®PLC Coder™生成结构化文本代码。

定点转换
使用定点设计器设计和模拟定点系统。

版本历史

R2006a之前介绍

Baidu
map