Page 259 - 《软件学报》2021年第6期
P. 259

陆芝浩  等:Ptolemy 离散事件模型形式化验证方法                                                     1833


         当事件队列为空时,说明模型的一次执行结束.
             算法 1. Semantics of Ptolemy Discrete Event Model.
             1:   Q:=∅;
             2:   for each actor A in model do
             3:      Ainit(⋅)
             4:   end for
             5:   while Q is not empty do
             6:      event:=head event of Q
             7:      remove event from Q
             8:      actorToFire:=getActorByEvent(event)
             9:      actorToFire.prefire(⋅)
             10:     actorToFire.fire(⋅)
             11:     actorToFire.postfire(⋅)
             13: end while
             在 DE 模型中,消息通过组件之间的连接进行瞬时传递,模型中时间的推移是通过时钟组件实现的.DE 模型
         按照时间顺序进行执行,首先执行时间最早的事件(拥有最早的时间戳).随着事件的处理,在模型内和外部世界
         的时间都会向前推移,因此逻辑时间和物理时间之间会产生混淆.逻辑时间是模型中的时间,物理时间是模型执
         行时现实世界中消耗的时间.逻辑时间可能会比物理时间走的更快或更慢.
             DE 控制器中的 synchronizeToRealTime 参数设置为 true 时,可以在某种程度上让这两个时间同步,它通过延
         缓模型的执行以便物理时间追上逻辑时间.当然,这只有在计算机足够快地执行这个模型使得逻辑时间远远快
         于物理时间的情况下才起作用.当这个参数设置为 true 时,逻辑时间值以秒为单位,否则时间单位是任意的.

         2    时间自动机模型

                      [5]
             时间自动机 是在传统自动机上进行实时扩展.设 V 是有限变量集合,C 是有限时钟变量集合,X 是有限数据
         变量集合,有 V=C∪X 且 C∩X=∅.所有的时钟变量同步向前演进.我们用ψ(V)表示位置约束和守卫函数的集合,
         有ψ::=e|ψ∩ψ,e 是形如 c~n 或者 x~n 的表达式,其中,c∈C,x∈X,~∈{≤,≥,=,<,>}.赋值操作定义为 v:=e,v∈V.我们
         用 U 表示所有的赋值函数.

         2.1   时间自动机语义
             时间自动机是一个六元组λ(L,l 0 ,K,V,I,T),其中,
             •   L:有限的位置集合;
             •   l 0 :初始位置;
             •   K:有限的动作集合;
             •   V:有限的变量集合;
             •   I:L→ψ(V)是位置约束函数;
             •   T:T⊆L×ψ×K×U×L 是有限的边的集合.
             每条边有一个源位置 l、一个目标位置 l′.当边上的守卫 g∈ψ满足时,迁移发生并且变量集 V 中的部分变量
         通过函数 r∈U 更新.边 t〈l,g,k,r,l′〉常写作 l ⎯⎯⎯→   . l′
                                            gk
                                            ,,r
             自动机初始状态位于初始位置 l 0 ,且所有时钟变量初始化为 0.随着时间流逝,所有的时钟变量按照相同的
         频率增长,且满足位置约束 I(l 0 ).当该位置上的变量满足边上的使能守卫 g 时,系统可以继续停留在这个位置或
                                                              [6]
         者迁移到位置 l′.当动作 k 发生时,变量根据函数 r 的定义发生改变 .
             时间自动机λ(L,l 0 ,K,V,I,T)的语义定义为一个标号变迁系统 S(λ)=〈S,s 0 ,→〉.S⊆L×U 是状态的集合,s 0 是初始
         状态,→⊆S×(U∪K)×S 是迁移的集合,分为两类.
   254   255   256   257   258   259   260   261   262   263   264