Simulink Data Type Conversion模块使用笔记

Data Type Conversion 是建模很常用的数据转换模块,在这里我想介绍一下在模型定标过程中Vonvert模块使用心得。

 1.Output data type

这里设置的是Convert输出的数据类型,先了解一下Simulink一个特殊的数据格式fixdt,fixdt有三种形式:fixdt(A,B),fixdt(A,B,C),fixdt(A,B,D,E)。

fixdt(A,B)A:符号位,1代表有符号,0代表无符号。B:数据长度。fixdt(A,B)只能表示整数,例如fixdt(0,8)表示的数据范围[0~255]

fixdt(A,B,C)

A,B意义和上面相同,C表示小数位长度。例如fixdt(0,8,2),能够表示整数的只有6位,取值范围[0~63],小数取值范围1-2^-2=0.75,因此fixdt(0,8,2)表示的取值范围是[0~60.75]

fixdt(A,B,D,E)

A,B意义和上面相同,D表示slopeE表示 biasreal world value=(slope×integer)+bias。例如fixdt(0,8,1,-40)表示的取值范围是

[-40,215]

2.Input and Output to have equal

这里有两个选择:Real World Value(RWV)Stored Integer(SI)

要通过保留输入信号的真实值,将信号从一种数据类型转换为另一种数据类型,请选择默认值 “Real World Value (RWV)”。模块会解释由输入和输出的定标施加的限制,并尝试生成具有相等真实值的输出。

要通过对存储的整数值执行定标重新解释来更改输入信号的真实值,请选择 “Stored Integer (SI)”。在转换过程中,模块将尝试在指定的数据类型范围内保留为信号存储的整数值。最佳做法是使用相同的字长和符号指定输入和输出数据类型。这样做可确保模块仅更改信号的定标。为输入和输出指定不同的符号或字长可能会产生意外的结果,例如范围丢失或意外的符号扩展。

用法举例:

RWVRWV在有效值范围内输出真实值,不会改变Inport Data 数值大小。例如Inport数据类型U8Conversion数据类型fixdt(0,8,1,-40),选择RWV后,Conversion输出数据范围[-40,215],在这个范围内可以传递有效值。

SI: SI根据Conversion中指定的数据类型,对内存中存储的输入数据重新定标。

 等价于以下用法。

注意:Convert(SI)不可以连续使用。

例如以下用法就得到了非期望的输出

如果一定要使用两个Convert(SI),则两个Convert(SI)之间必须添加一个Convert(RWV)

Convert(RWV)输出数据类型必须定标,不能选择Inherit: Inherit via back propagation。

 3.Integer rounding mode

Floor

地板模式。将正值和负值都朝负无穷大方向舍入。

Celling

天花板模式。将正值和负值朝正无穷大方向舍入。

Zero

零值模式。相当于正值用地板模式,负值用天花板模式。从绝对值上看,直接抹掉小数部分。

Round

圆整模式。正数和负数都是按绝对值舍入。如出现对等情况,则正数朝正无穷大方向舍入,负数朝负无穷大方向舍入。

Nearest

最近模式。如果出现对等,朝正无穷大的方向舍入。

Convergent

收敛模式。将数值舍入到最近的可表示值,如果出现对等,则舍入到最接近的偶数整数。再出现对等,正数朝正无穷大方向舍入,负数朝负无穷大方向舍入。

Simplest

最简模式。自动选择是朝负无穷大方向舍入还是项零舍入,亦生成尽可能有效的舍入代码。

  • 9
    点赞
  • 92
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值