避免不必要的递归图gydF4y2Ba

递归可以用于控制亚态状态中并行的转换相同层次的图表。例如,您可以发送一个直接广播事件从一个平行状态到兄弟姐妹平行状态指定亚态过渡。这种类型的递归行为是可取的和有效的。有关详细信息,请参见gydF4y2Ba广播本地事件同步平行状态gydF4y2Ba。gydF4y2Ba

然而,不必要的递归图执行过程中也会发生。为了避免不必要的递归,不使用递归函数调用或无向当地事件广播。gydF4y2Ba

递归函数调用gydF4y2Ba

假设你有函数命名gydF4y2BafgydF4y2Ba,gydF4y2BaggydF4y2Ba,gydF4y2BahgydF4y2Ba在一个图表。这些功能可以任意组合的图形功能,真值表函数,MATLABgydF4y2Ba®gydF4y2Ba函数或模型金宝appgydF4y2Ba®gydF4y2Ba功能。gydF4y2Ba

为了避免递归的行为,不:gydF4y2Ba

  • 有gydF4y2BafgydF4y2Ba调用gydF4y2BaggydF4y2Ba调用gydF4y2BahgydF4y2Ba调用gydF4y2BafgydF4y2Ba。gydF4y2Ba

  • 有gydF4y2BafgydF4y2Ba,gydF4y2BaggydF4y2Ba,或gydF4y2BahgydF4y2Ba自称。gydF4y2Ba

无向本地事件广播gydF4y2Ba

状态行为与无向当地事件广播的例子包括:gydF4y2Ba

  • 条目:发送(E1)gydF4y2Ba,在那里gydF4y2BaE1gydF4y2Ba图是一个当地的事件。gydF4y2Ba

  • 退出:E2gydF4y2Ba,在那里gydF4y2BaE2gydF4y2Ba图是一个当地的事件。gydF4y2Ba

为避免递归的行为,将无向事件广播与导演事件广播使用语法gydF4y2Ba

发送(gydF4y2Ba事件gydF4y2Ba,gydF4y2Ba状态gydF4y2Ba)gydF4y2Ba
在哪里gydF4y2Ba事件gydF4y2Ba在图表和是一个当地的事件gydF4y2Ba状态gydF4y2Ba是一个目标状态。gydF4y2Ba

  • 如果当地事件广播发生在一个国家行动,确保目标状态不是一个祖先的源状态图表中的层次结构。gydF4y2Ba

  • 如果当地事件广播发生在过渡,确保:gydF4y2Ba

    • 目的地国家不是一个祖先的过渡图的层次结构。gydF4y2Ba

    • 不连接到目标状态的过渡。gydF4y2Ba

在仿真中,StateflowgydF4y2Ba®gydF4y2Ba图表可以检测无向本地事件广播。控制水平的诊断操作,打开模型配置参数对话框。在gydF4y2Ba诊断gydF4y2Ba>gydF4y2BaStateflowgydF4y2Ba窗格中,为gydF4y2Ba无向事件广播gydF4y2Ba诊断时,您可以选择gydF4y2Ba没有一个gydF4y2Ba,gydF4y2Ba警告gydF4y2Ba,或gydF4y2Ba错误gydF4y2Ba。默认设置是gydF4y2Ba警告gydF4y2Ba。有关更多信息,请参见gydF4y2Ba无向事件广播gydF4y2Ba(金宝app模型)。gydF4y2Ba

另请参阅gydF4y2Ba

相关的话题gydF4y2Ba