Engee 文档

转型

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

default transition 1

default transition 2

过渡*(transition)是一条带箭头的线,描述从航天器的一个状态或节点(过渡开始的地方)到另一个状态或节点的过渡。这种过渡不仅可以连接状态,也可以连接节点,或将一个状态块连接到一个节点。对于一个过渡,可以定义"[]"条件和"{}"动作。过渡条件决定是否发生向下一个节点或状态的过渡。与过渡相关的操作则指定在过渡期间将执行 Julia 上的哪些代码。

stateflow condition 1

转换语法

过渡语可通过时间逻辑运算符 、变化指示器、条件和操作进行定制:

condition action stateflow

行动和条件须遵守以下规则:

  • 条件用方括号"[]"表示。

  • 操作用大括号"{}"指定。

  • 所有字段都是可选的,可以省略。

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

    stateflow example synth 1

  • 您可以像在任何朱莉娅代码中一样,在转场时留下评论:

    stateflow commentary 1

  • 要将多条语句 Julia 语言放在一行,请使用分号; 作为分隔符:

    {y = 0; v = 1}
  • 单个过渡中的条件通过逻辑运算符 &&& (和)和 |||(或)来指定。

    #Вариант с "и"
    [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

左键单击过渡设置所需的优先级,然后选择 优先级顺序

stateflow example settings 1

在本例中,到*警报*状态的过渡被放在第一位,具有第一优先权,到*故障*状态的过渡被放在第二位,具有第二优先权。

超级转换

超级转换*(supertransition)是一种机制,允许在层次结构的任何层级的状态之间进行转换,包括深入子状态的转换、父状态和子状态之间的转换,或任何两端位于块状态边界两侧的转换。

supertransition ka 1

实用链接