Simulink:类型一致性错误

时间:2010-03-29 04:18:23

标签: matlab simulink

使用this Simulink model file作为参考,我试图弄清楚以下两个错误: alt text http://imagebin.ca/img/dSV8YO.png

alt text http://imagebin.ca/img/OXDf0v.png

我不知道数据类型一致性/转换问题出了什么问题。您是否知道错误消息在模型上下文中的含义?能够解决问题来解决问题会很棒。提前谢谢。

1 个答案:

答案 0 :(得分:1)

块'Inner Loop / e ^( - s)'是否驱动了块'Inner Loop / Sum'?看起来'e ^( - s)'块试图将Sum块设置为double,但Sum块已经设置为其他一些数据类型。我不确定为什么会发生这种情况,但这里是Sum块documentation的帮助的片段,

  

继承:通过内部规则继承

     

Simulink选择输出缩放和数据类型的组合,需要最小的内存量,以适应​​计算的输出范围,并保持块的输出精度和为模型指定的目标硬件实现的字大小。如果“硬件实施配置参数”窗格中的“设备类型”参数设置为ASIC / FPGA,则Simulink软件会选择输出数据类型,而不考虑硬件限制。否则,Simulink软件会选择能够满足范围和精度约束的最小可用硬件数据类型。例如,如果块将int8类型的输入乘以int16的增益并且ASIC / FPGA被指定为目标硬件类型,则输出数据类型为sfix24。如果未指定(假设32位通用),即通用32位微处理器,被指定为目标硬件,则输出数据类型为int32。如果目标微处理器提供的字长均不能容纳输出范围,则Simulink软件会在Simulation Diagnostics Viewer中显示错误消息。

您可以尝试强制输出数据类型为double,如果这是您真正想要的,或者您可以尝试在Sum块前面放置一个数据类型转换块。另一件可以帮助的事情是尝试从格式菜单中打开端口数据类型。它应该在错误发生时显示所有传播的数据类型。