Engee 文档

过渡期

默认过渡 (默认过渡) stateflow default transition -这是在激活任何状态或节点之前执行的转换。 系统会自动为第一个状态添加默认转换,并为转换添加节点。

default transition 1

default transition 2

*Transition*是一条带有箭头的线,描述从航天器的一个状态或节点过渡到另一个状态或节点的过渡。 这种转换不仅可以连接状态,还可以连接节点,或者将状态块连接到节点。 对于转换,您可以定义条件'[]'和操作'{}`。 转换条件确定是否会发生到下一个节点或状态的转换。 与转换相关联的操作指示在此转换期间将执行Julia上的哪些代码。

stateflow condition 1

转换的语法

设置是在转换上设置的 时间逻辑运算符,变化,条件和行动的指标:

condition action stateflow cn

行动和条件受以下规则约束:

  • 条件在方括号`[]'中指定。

  • 操作在花括号'{}'中指定。

  • 所有字段都是可选的,可以跳过。

  • 条件和动作支持Julia语言的数学和逻辑运算。 例如:

    stateflow example synth 1

  • 您可以在转换上留下评论,就像在任何Julia代码中一样。:

    stateflow commentary 1 cn

  • 为了容纳多个运营商 在Julia语言中,在一行上使用分号。 ; 作为分隔符:

    {y = 0; v = 1}
  • 使用逻辑运算符`&&`(and)和`||`(or)设置单个转换中的条件。

    # 选项与"和"
    [x>1 && x<3]
    
    # 带有"或"的选项
    [x>1 || x<3]
  • 在条件中,可以在括号中设置运算符优先级,例如在Julia语言中:

    [x == 1 && (y == 3 || after(3,sec))] # 表达式(y==3||after(3,sec))将首先计算
  • 阅读文章中有关时间逻辑运算符的更多信息 时间逻辑运算符;

  • 阅读更多关于变化指标的信息。 下面

交通优先次序

*转换优先级*是在多个转换的条件为真的情况下计算和执行它们的顺序。

考虑从一个例子 文章:

im3

在示例中,*Rest*状态有两个转换,其优先级自动设置。:

sf transition prior 1

左键单击过渡以调整所需的优先级并选择*执行顺序*:

statemachines order 1 cn

您还可以通过单击所需的过渡在设置窗口中更改过渡的优先级。:

stateflow example settings 1 cn

在我们的例子中,到*Alarm*状态的转换首先被设置并且具有第一优先级,并且到*Fault*状态分别是第二和第二优先级。

超级过渡

*Supertransition是一种机制,允许在层次结构的任何级别的状态之间进行转换,包括深入到子状态的转换,父和子状态之间的转换,或任何其末端位于块状态边界相对两侧的转换。

supertransition ka 1 cn

有用的连结