主要内容

数据类型转换

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

  • 库:
  • 金宝appSimulink /常用模块

    金宝appSimulink /信号属性

    HDL编码器/常用模块

    HDL编码器/ HDL浮点运算

    编码/信号属性

  • 数据类型转换块

描述

数据类型转换块转换任何Simulink的输入信号金宝app®数据类型转换为指定的数据类型。

请注意

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

定点信号转换

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

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

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

有关定点数字的更多信息,请参见Simulink中的定点数字金宝app(定点设计师)

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

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

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

num2hex(单(5))
40 a00000

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

将枚举信号

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

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

    的所有枚举值的基础整数数据类型转换块必须在数字类型的范围内。否则,在模拟过程中发生错误。

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

    的值输入数据类型转换块必须与枚举值的基础值匹配。否则,在模拟过程中发生错误。

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

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

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

  • 将复信号转换为枚举信号,不管复信号的实部和虚部的数据类型如何。

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

港口

输入

全部展开

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

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

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

输出

全部展开

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

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

参数

全部展开

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

金宝appSimulink使用最小值来执行:

请注意

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

编程使用

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

Simulink检查的输出范围的上限值。金宝app

金宝appSimulink使用最大值来执行:

请注意

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

编程使用

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

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

编程使用

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

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

编程使用

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

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

  • 真实世界价值(RWV)-指定目标使真实世界价值(RWV)等于真实世界价值(RWV)的输出。

  • 存储整数(SI)-指定目标使存储整数(SI)的输入值存储整数(SI)输出值。

编程使用

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

选择这些四舍五入模式之一。

天花板

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

收敛

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

地板上

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

最近的

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

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

简单的

自动选择朝向地面的四舍五入和朝向零的四舍五入,生成尽可能高效的四舍五入代码。

四舍五入数接近零。等价于MATLAB修复函数。

编程使用

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

另请参阅

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

指定溢出是否饱和或缠绕。

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

    例如,数字130不适用于带符号的8位整数,将自动换行为-126。

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

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

提示

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

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

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

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

  • 一般来说,代码生成过程可以在不可能溢出时进行检测。在这种情况下,代码生成器不会产生饱和代码。

编程使用

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

将样本时间指定为-1以外的值。有关更多信息,请参见指定样品时间

依赖关系

这个参数是不可见的,除非它被显式地设置为非-1.想要了解更多,请看不推荐采样时间的块

编程使用

块参数:SampleTime
类型:特征向量
价值观:标量或矢量
默认值:' 1 '

块特征

数据类型

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

直接引线

是的

多维信号

是的

适应信号

是的

讨论二阶导数过零检测

没有

扩展功能

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

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

定点转换
使用fixed-point Designer™设计和模拟定点系统。

之前介绍过的R2006a