我正在使用Simulink从我创建的许多蒙版块中建模废物回收设备,表示排序步骤,缓冲区等。每个模块(即蒙版块)都有失败概率,使用离散事件建模。如果发生故障事件,则触发的子系统将调用解释的Matlab函数("在#sulink的外部")。该函数应该设置掩码块的参数status
,表示失败的模块以及上游模块' status
为0(因为很明显,上游的一切都必须停止,否则材料会堆积起来)。
`set_param(gcb, 'status', num2str(status));
PortConnectivity = get_param(gcb,'PortConnectivity');
sources = PortConnectivity.SrcBlock;`
基本上,这将循环,直到我到达没有自己的源块的块。
这一切都很有效,除了一个问题:gcb
命令给出了我手动突出显示的最后一个块的块路径,而不是调用解释的Matlab函数的块。有没有办法获得调用块的句柄(我会使用它的Parents
参数来访问Mask status
)? (类似的问题已经被问到here,没有结果......)
我希望你能解决我的问题 - 我很乐意详细说明是否有任何不清楚之处;我并不是自称是Simulink专家,所以很抱歉使用错误的术语。