Uppaal时钟如何演变?我有两个位置1和2不变,在转换到位置1时时钟重置为零(0)。在位置1和2之间的边缘,我如何知道此时的时钟值? (即,在位置2之前的两个位置之间的时钟值)。 时钟会继续从位置1演变为位置2以及之后的位置,还是在新位置的入口处自动重置?
答案 0 :(得分:0)
TLDR;答案。
如果自动机以x==0
开头并在不带固定位置的位置移动,则自动机可能会延迟,例如5
个时间单位,然后以x==5
移到另一个位置,然后再延迟,例如{ {1}}个时间单位,将3.141
移动到值x
,依此类推。请注意,时钟8.141
可以通过延迟和转换来达到任意的 real 值(因此可以选择任意值),这意味着需要分析所有这些可能性。 Uppaal会以约束形式捕获所有这些可能的值(或者在没有不变性或保护的情况下,在这种情况下会缺少这些可能的值,因为所有时钟都是同步的,模拟器可能只显示x
)。
某些上下文。
Uppaal使用时钟变量实现定时自动机,时钟变量的值以x==y
的速率(时间导数)连续变化。
因此,如果将时钟重置为1
,并且自动机到达的位置没有不变性(也不紧急,也没有提交),那么时钟可以自由发展,因此可以具有从0
到{{ 1}}。 Uppaal使用打包在差异绑定矩阵(DBM)中的约束(间隔)来象征性地表示此类估值。如果自动机进行过渡,则Uppaal将立即分析满足约束条件的所有可能过渡。例如,如果某个位置具有不变的0
,并且边缘具有保护infinity
,则当x<=5
在x>=2
和x
之间的任何位置时,过渡可用,因此,Uppaal将采用具有约束2
的符号转换,可同时捕获所有这些可能的转换。这样就可以分析有限数据结构和有限时间中的无限多个过渡。
一些常见的情况可能会使新手感到困惑。 如果系统中有多个自动机,那么将对时间流逝进行全局分析,即一个自动机中的不变性将影响其他自动机中的其他时钟,因为所有时钟均通过全局时间进行同步。
定时自动机在守卫和不变式中只允许使用整数,原则上可以缩放以适应具有有理数的模型。 Uppaal还通过紧急的,已提交的位置,选择语句,广播同步,整数变量,函数调用等扩展了定时自动机,在相同的定时自动机理论下仍可对其进行分析,但使建模更具表现力和简洁性
您可以在http://uppaal.org的文档部分下的Uppaal教程中阅读更多内容: http://www.it.uu.se/research/group/darts/uppaal/documentation.shtml#tutorials