主要内容gydF4y2Ba

避免图表中不必要的递归gydF4y2Ba

递归对于控制图表层次结构中相同级别的并行状态之间的子状态转换非常有用。例如,您可以将一个有向事件广播从一个并行状态发送到一个同级并行状态,以指定子状态转换。这种类型的递归行为是可取的和有效的。有关详细信息,请参见gydF4y2Ba广播本地事件以同步并行状态gydF4y2Ba.gydF4y2Ba

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

递归函数调用gydF4y2Ba

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

为了避免递归行为,请不要:gydF4y2Ba

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

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

无定向本地事件广播gydF4y2Ba

无向事件广播将一个本地事件发送到它可见的所有状态。无向事件广播的格式为gydF4y2Ba

发送(event_name)gydF4y2Ba
在哪里gydF4y2Baevent_namegydF4y2Ba是当地的盛事。gydF4y2Ba

为了避免递归行为,可以使用语法将无向事件广播替换为有向事件广播gydF4y2Ba

发送(event_name state_name)gydF4y2Ba
在哪里gydF4y2Baevent_namegydF4y2Ba是一个本地事件在图表和gydF4y2Bastate_namegydF4y2Ba是目标状态。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

相关的话题gydF4y2Ba