simulink报错:Error:Block 'VTDcode/CarSim_to_VTD_OBJECT_STATE_48191/Make mask value for lights/High beam mask value' must be inside a conditionally executed subsystem that is not an Iterator subsystem because its 'Output Port 1' is connected to the Merge block 'VTDcode/CarSim_to_VTD_OBJECT_STATE_48191/Make mask value for lights/Merge2' 'Input Port 1'.
反正他就是说,我这个merge前面的模块必须接在非迭代条件触发子系统里面,找了好久没找到解决方案,现在终于解决,方法如下:
这儿打红框的,不要选error,推荐选warning(这里并不是一定要修改,有的情况不改也不会报错,建议都试试):
这儿不要选simplified,选classic(这里是报错的主要原因):
修改后bug完美解决,可正常运行。
在debug之后,我不免产生了疑问,为何这样修改就能成功?
在参照matlab官网给出的调试记录后,终于明白,原来是merge模块有限制:
最后一条,初始条件,于是找到和它相关的设定:
即simulink中的underspecified initialization detection选项,它的解释如下:
故将其选定为classic,问题即宣告解决: