2010-03-29 103 views

回答

1

块'Inner Loop/e ^( - s)'是否在驱动块'Inner Loop/Sum'?看起来'e ^( - s)'块试图将Sum块设置为double,但Sum块已经设置为某种其他数据类型。我不知道为什么会发生的事情,但这里是从帮助的算块documentation片断,

继承:通过内部规则继承

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

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

+0

不知道为什么它的工作,但现在它适用于我。谢谢。 – stanigator 2010-03-30 07:05:35