主要内容

数据类型转换

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

  • 库:
  • 万博1manbetxSimulink /常用块

    万博1manbetxSimulink /信号属性

    HDL编码器/常用块

    HDL编码器/ HDL浮点运算

    HDL编码器/信号属性

  • 转换块

描述

数据类型转换块转换任何Simulink的输入信号万博1manbetx®数据类型设置为您指定的数据类型。

请注意

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

转换定点信号

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

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

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

有关定点数字的更多信息,请参见Simulink中的定点数字万博1manbetx(定点设计师)

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

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

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

num2hex(单(5))
40 a00000

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

Cast枚举信号

使用一个数据类型转换Block来转换枚举信号如下:

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

    控件中输入的所有枚举值的底层整数数据类型转换块必须在数值类型的范围内。否则,在模拟过程中会出现错误。

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

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

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

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

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

  • 将复信号转换为枚举信号,而不管复信号的实部和虚部的数据类型是什么。

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

港口

输入

全部展开

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

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

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

输出

全部展开

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

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

参数

全部展开

Simulink检查输出范围的较低值。万博1manbetx

万博1manbetxSimulink使用最小值执行:

请注意

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

编程使用

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

Simulink检查的输出范围的最大值。万博1manbetx

万博1manbetxSimulink使用最大值执行:

请注意

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

编程使用

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

选择输出的数据类型。类型可以继承、直接指定或表示为数据类型对象,例如万博1manbetx仿真软件。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++代码。万博1manbetx

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

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

R2006a之前介绍过