当前位置:首页 > > 充电吧
[导读]14.2.3.8 迁移迁移是一个从单个源顶点开始到单个目标顶点结束的单方向圆弧(源和目标可能是同一个顶点),它定义了状态机行为的一段。它可以有关联的效应行为,这个效应行为在迁移被通过(执行)的时候执行

14.2.3.8 迁移

迁移是一个从单个源顶点开始到单个目标顶点结束的单方向圆弧(源和目标可能是同一个顶点),它定义了状态机行为的一段。它可以有关联的效应行为,这个效应行为在迁移被通过(执行)的时候执行。

注意:通过迁移的期间是无定义的,允许有不同的语义解释,包括”0“和非"0"时间。

迁移是作为更复杂的复合迁移的一部分被执行的。这个复合迁移使状态机从一个稳定状态构成执行到另一个。符合迁移的语义在后面定义。

在执行的过程中,一个迁移实例被说成是:

•到达,当状态机执行到达它的源顶点(即,它的源状态处于活动状态构成);

•通过,当它被执行(连同任何的关联效应行为)

•完成,当它到达目标顶点之后

迁移可以拥有多 个触发条件,每个触发条件定义了一个事件,当事件发生被发送时,可以触发迁移的通过。如果发送的事件发生与事件类型匹配,就可以说触发条件处于有效状态。 当一个迁移定义了多个触发条件时,它们逻辑上是分离的,也就是说,只要它们中的任何一个处于有效状态,迁移就会被触发。

14.2.3.8.1与迁移源相关的迁移种类

迁移的语义决定于它和它的源顶点的关系,根据迁移的种类属性的值,存在三种可能:

•kind为external意味着迁移退出它的源顶点。如果该顶点是状态,执行这个迁移会导致那个状态所有的退出行为被执行。

•kind为local和external相反,意味着迁移不退出包含它的状态(而且,因此,包含该迁移的状态的退出行为不会被执行)。但是对于局部迁移来讲,目标顶点必须和源顶点不同。局部迁移只能存在于组合状态中。

•kind为internal是局部迁移的特殊情况,它是一个自迁移。(即源状态和目标状态相同),就是状态从未退出(而且也没有重新进入),它意味着当这个迁移执行的是有,没有进入和退出行为被执行。这种类型的迁移只有在源顶点是状态是才可以定义。

14.2.3.8.2高级(组)迁移

如果迁移的源顶点为组合状态,那么称 之为高级或组迁移。如果是外部迁移,组迁移的结果是退出组合状态的所有子状态,从活动状态构成最内层状态开始执行所有定义了的退出行为。如果是局部迁移, 迁移源状态的退出迁移和迁移目标状态的进入行为将会被执行,包含它们的状态退出迁移和进入迁移则不会被执行。

14.2.3.8.3完成迁移和完成事件

完成迁移是一种特殊的迁 移,它拥有一个隐含的触发条件。激活这个触发条件的事件被称为完成事件,它表示所有所有与完成迁移的源状态关联的行为都已经完全地被执行。在简单状态的情 况下,当关联的进入和doActivity行为结束执行时会生成一个完成事件。如果上述行为没有被定义,完成事件在进入状态时生成。对于组合或者子状态机 状态,完成事件在下列情况下产生:

•所有的内部活动(即,进入和doActivity行为)已经执行完毕,而且

•如果是组合状态,那么它的所有正交区域都已经执行到完了状态,或者

•如果是子状态机状态,那么子状态机已经执行到完了状态。

完成事件有优先发送权。也就是说,它们在事件池中等待处理的所有事件发生之前被发送。如果有两个或多个完成事件对 应同时执行的多个正交区域(即都是同一个事件发生的结果),这些完成事件被处理的顺序无定义。一个状态机中所有的最顶层区域的完成对应状态机的行为的完成 并且导致状态机的终止。

迁移监护条件

迁移有一个关联的监护约束。如果迁移的监护条件的演算结果为假,则迁移无效。监护条件在包含它的复合迁移有效之前进行演算,除非它们属于源自选择伪状态的迁移。在后面的情况中,监护条件在迁移到选择点时进行演算。没有监护条件的迁移被看作是拥有一个永远为真的监护条件。

完成迁移也可以有监护条件。

监护约束可以包含对当前状态机的正交状态,或者是某些可访问对象的明确设计的状态(例如”处于状态1“,或 者"不处于状态2“)进行检查。状态名可以被嵌套状态和包含它们的区域完全地限定,这时得到的是 “RegionA::State1::Region1::State2::State3”形式的路径名称。这种方法可以在不同组合状态区域中存在相同的状 态名称时使用。

14.2.3.8.4复合迁移

像前面说明的那样,当一个事件触发了一个有效的迁移,或者生成了一个状态机执行,就可以开始一 组相连和嵌套的迁移和顶点的遍历,直至到达了某个稳定状态构成。在通常的情况下,这个遍历的踪迹,就是所谓的复合迁移,可以被表现为一个非循环的,定向的图。这个图的根(源)可以下列中的某一个:

•拥有一个或多个触发条件的迁移。

•完成迁移。

从来自不同的正交区域聚集到共同的汇合伪状态上的一组迁移(可能包括完成迁移)

始于最顶层区域中的初始伪状态的迁移(即被状态机拥有的区域);这个变体只适用于状态机实例被创建的情况。

当执行中的迁移 以默认方式进入到一个包含多个正交区域的状态时为每个区域生成了一个单独的分支,或者遇到了分叉伪状态,都可以说复合迁移的执行发生了分支行为。复合迁移 执行的全部行为是一组部分有序的与遍历经过的元素关联的行为的执行,次序由到达元素(顶点和迁移)的顺序决定。例如,如果进入复合状态的迁移终止于该状态 的子状态,那么迁移的效应行为将会在复合状态的进入行为之前,子状态的进入行为之后执行。如果在迁移过程中遇到了分叉伪状态,那么每个离开分支的效应行 为,至少从概念上是同时执行的。

如果到达的选择或汇合点拥有多个带有监护条件的离开迁移,那么监护条件的演算结果为真的迁移会被选中。如果结果为真的监护条件超过一个,其中的一个会被选中。做出这种选择的算法无定义。当迁移离开一个选择伪状态,如果没有结果为真的监护条件,那么模型是病态的。

14.2.3.8.5迁移所有权

虽然包含它的区域直接或间接地被状态机拥有,但是迁移的所有者没有被明确地要求。一个推荐的拥有者是包含它的源顶点和目的顶点的最内层区域。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭